2016-06-23 28 views
0

org.json jsonライブラリを使用すると、XMLからJSONに簡単に変換できます。Java - JSONをXMLに変換して属性を維持する

import org.json.JSONObject; 
import org.json.XML; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     String xml = "<tag1 attr1=\"val1\"><tag2 attr2=\"val2\"/></tag1>"; 
     System.out.println(xml); 

     JSONObject str = XML.toJSONObject(xml); 
     System.out.println(str); 

     JSONObject json = new JSONObject(str.toString()); 
     String xml2 = XML.toString(json); 
     System.out.println(xml2); 
    } 
} 

出力

<tag1 attr1="val1"><tag2 attr2="val2"/></tag1> 
{"tag1":{"attr1":"val1","tag2":{"attr2":"val2"}}} 
<tag1><attr1>val1</attr1><tag2><attr2>val2</attr2></tag2></tag1> 

は、どのように私は私のXML属性を取得できますが、バックXMLへの変換は、常に、JSONはXMLノードに属性を変換しますか?

+0

あなたは[Badgerfish](http://badgerfish.ning.com)を見たことがありますか? XMLをJSONに変換して元に戻すための規約です。あなたのJSONに奇妙なことを気にしないなら、あなたのために働くかもしれません。 – dnault

答えて

0

あなたがXML

<tag1><attr1>val1</attr1><tag2><attr2>val2</attr2></tag2></tag1> 

の下に変換します場合は、同じJSON結果になるだろう。

{"tag1":{"attr1":"val1","tag2":{"attr2":"val2"}}} 

ので、XMLにJSONから戻って変換する曖昧さを引き起こす可能性があります。したがって、jsonフィールドと属性またはタグがある場合は、それを示すカスタムコードを書く方がよいでしょう。その変換用のライブラリがあるかどうかはわかりませんが、このリンクは参考になるかもしれません。

http://www.cubicrace.com/2015/06/How-to-convert-XML-to-JSON-format.html

関連する問題