2016-07-01 76 views
0

我正在嘗試使用JSON創建XML。 這裏是輸入:將JSON對象轉換爲xml(按照輸入的順序)

String message={StoreMasterRequest:{Message:{StandardBusinessDocumentHeader:{HeaderVersion:'1.0',Sender:{a:{Identifier:{body:'1',Authority:'EAN.UCC'}}},Receiver:{b:{Identifier:{body:'123',Authority:'EAN.UCC'}}},DocumentIdentification:{Standard:'AH-VI Specific Standard',TypeVersion:'1.0',InstanceIdentifier:'23',Type:'Store Master',MultipleType:'false',CreationDateAndTime:'2016-06-28T15&&54&&17'}},Payload:{StoreMaster:{MessageID:'23',MessageCreated:'2016-06-28T15&&54&&15',StoreNo:'151',LMExemptionStart:'',LMExemptionEnd:'',StoreGLN:'8710400034390',CountryCode:'NL',Street:'Amstel',HouseNumber:'900',PostalCode:'1185AL',City:'AMSTELVEEN',State:'HOLLAND',StreetDelivery:'AmstelDel',HouseNumberDelivery:'464',PostalCodeDelivery:'1185AL'}}}}} 
在我的Java代碼

我使用的是以下內容。

xml=org.json.XML.toString(new org.json.JSONObject(message)); 

的XML的輸出來了作爲

<StoreMasterRequest><Message><Payload><StoreMaster><Street>Amstel</Street><City>AMSTELVEEN</City><StoreGLN>8710400034390</StoreGLN><StreetDelivery>AmstelDel</StreetDelivery><PostalCodeDelivery>1185AL</PostalCodeDelivery><StoreNo>151</StoreNo><LMExemptionStart/><PostalCode>1185AL</PostalCode><State>HOLLAND</State><MessageID>23</MessageID><HouseNumberDelivery>464</HouseNumberDelivery><LMExemptionEnd/><HouseNumber>900</HouseNumber><CountryCode>NL</CountryCode><MessageCreated>2016-06-28T15:54:15</MessageCreated></StoreMaster></Payload><StandardBusinessDocumentHeader><DocumentIdentification><Standard>AH-VI Specific Standard</Standard><InstanceIdentifier>23</InstanceIdentifier><TypeVersion>1.0</TypeVersion><CreationDateAndTime>2016-06-28T15:54:17</CreationDateAndTime><Type>Store Master</Type><MultipleType>false</MultipleType></DocumentIdentification><Sender><a><Identifier><body>1</body><Authority>EAN.UCC</Authority></Identifier></a></Sender><HeaderVersion>1.0</HeaderVersion><Receiver><b><Identifier><body>123</body><Authority>EAN.UCC</Authority></Identifier></b></Receiver></StandardBusinessDocumentHeader></Message></StoreMasterRequest> 

我看有沒有爲了將所生成的XML文件中的具體根據輸入給定string.i試圖通過使用LinkedHashMap的重寫的JSONObject類。 但它沒有解決,並得到了編碼問題。我正在使用JSON 1.5.jar並使用CFR進行反編譯。我從這裏獲得了源代碼。我在本地使用了JDK1.7。任何人都可以建議哪一個是訂購JSON對象的最佳方式。

謝謝

+0

JSON對象不具有其鍵集的順序。密鑰和相應的vales可能會被洗牌,它主要發生在通過網絡傳輸時。處理離線數據時,儘管動機順序保持不變。如果你想確定你的設計中鍵的順序,那麼可能會爲你的對象添加排序屬性或通過在你的JSON中使用特定的鍵命名約定來實現它。 – chejaras

回答

0

你可能想嘗試在XSLT 3.0(撒克遜9.7實現),其保留的條目在地圖的順序json-to-xml()功能。然而,輸出將需要轉換:將XSLT功能將JSON鍵轉換爲XML屬性值

<string key="Street">Amstel</string> 

,因爲你不能確保JSON密鑰將是有效的XML元素名稱。