jsonlibを使用してJSONからXMLに変換中の文字が無効です

私はJSON文字列をJavaのjsonlibを使ってXMLに変換しようとしています。

    JSONObject json = JSONObject.fromObject(jsonString); 
    XMLSerializer serializer = new XMLSerializer();
    String xml = serializer.write( json );  
    System.out.println(xml);

私が得るエラーは

    nu.xom.IllegalNameException: 0x24 is not a legal NCName character

ここでの問題は、JSONに無効なXML文字であるいくつかのプロパティがあることです。例えば。私は "$ t"という名前のプロパティを持っています。 XMLSerializerは、XMLタグ名に$が使用できないため、この名前でXMLタグを作成しようとしているときに例外をスローします。シリアライザによって行われたこのXML整形式チェックをオーバーライドする方法はありますか?

1
なぜそのチェックを無効にしたいのですが(そして無効なxmlを生成する)のでしょうか?
追加された 著者 jtahlborn,
私はGoogle REST APIを使用しようとしています。 Webサービスを起動した後、私はJSON応答を取得します。私は、木構造のXMLを表示するツリービューアを持っています。だから、JSONをXMLに変換してツリーとして表示する必要があります。しかしJSONでは "$"は有効なプロパティ名です。 Google APIは "$ t"、 "gCal $ timesCleaned"などのプロパティ名を返します。そのため、XMLに変換するときにエラーが発生します。
追加された 著者 Jophin Joseph,

3 答え

json.keySet (必要に応じて再帰的に)をループし、無効なキーを有効なものに置き換えることができます( remove add を使用)。

0
追加された

私はjson-lib XMLSerializerの仕様を見ていましたが、驚いたことに、キーが有効なXML名ではないJSONオブジェクトをシリアル化するオプションがないようです。そうであれば、別の図書館を探す必要があると思います。

0
追加された

まず、使用している言語を追加することをお勧めします(これはJavaです)。

XMLタグ名をチェックするメソッドをオーバーライドして何もしなくてもかまいません。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript