2016-06-23 79 views
0

使用org.json json庫,可以很容易地將XML從XML轉換爲JSON。但轉換回XML轉換始終JSON屬性爲XML節點: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屬性?

+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"}}} 

因此,從JSON轉換回XML可能會導致歧義。因此,最好寫一些自定義代碼,指出如果是json字段和屬性或標籤。我不確定是否有一個庫的轉換,但這個鏈接可能會有所幫助;

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