1

Java で jsonlib を使用して JSON 文字列を 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」という名前のプロパティがあります。$ は XML タグ名で許可されていないため、この名前で XML タグを作成しようとすると、XMLSerializer は例外をスローします。シリアライザーによって行われたこの XML 整形式チェックを無効にする方法はありますか?

4

3 に答える 3

0

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

XMLタグ名をチェックして何もしないメソッドをオーバーライドできます。

于 2011-10-28T11:31:36.643 に答える
0

json-lib XMLSerializerの仕様を調べましたが、驚いたことに、キーが有効なXML名ではないJSONオブジェクトをシリアル化するオプションがないようです。その場合は、別のライブラリを見つける必要があると思います。

于 2011-10-28T14:26:03.967 に答える
0

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

于 2011-10-28T15:03:45.017 に答える