2016-12-14 50 views
0

所以我目前正在構建一個遊戲,我正試圖在遊戲中解析這個。現在這是它的一部分看起來像這樣:數據庫JSON數組

{ 
    "CircuitList": [  
     {  
      "name": "GP SILVERSTONE", 
      "location": "ENGLAND", 
      "laps": 57, 
      "Parts": 
       [ 
        { 
         "1":{ 
         "type": "straight", 
         "length": 800 
        }, 
         "2": { 
         "type": "sharpturn", 
         "length": 200 
        }, 

現在接下來是更多的部分。現在,我解析了json文件,並使用

JSONArray Silverstoneparts = (JSONArray) jsonObject.get("Parts"); 

創建一個包含所有部分的數組。但我不知道如何讀出類型和長度,所以如果有人願意幫助,就像將我輕輕推向正確的方向,那麼將非常感謝:)

+1

考慮使用類似Jackson的方法將JSON解組爲Java對象結構。 – lexicore

+0

爲所需結構創建一個「obj」對象,在你的情況下,對象將具有類型和長度。現在,parts是一個對象數組,每個對象都包含一個從「id」到「obj」的映射。然後你可以使用傑克遜或gson或一些庫來序列化和反序列化 – gaganbm

+0

[在Android中讀取Json數組]可能的副本(http://stackoverflow.com/questions/4244879/reading-a-json-array-in-android ) – Bryan

回答

0
JSONArray circuitList = (JSONArray) jsonObject.get("CircuitList"); 
JsonArray parts = circuitList.getJsonObject(0).getJsonArray("parts"); 

建議使用JsonObject來構建json字符串。

0

您可以嘗試解析JSON使用gson庫。您應該根據您的JSON數據定義一個嵌套數組/屬性的數據結構,並將JSON數據序列化爲本地對象。

原生Java對象將幫助您讀取代碼中的解析數組和其他屬性,而不是依賴循環中的鍵和運行循環來提取值。