2013-10-20 134 views
0

我有很多與此有關的遊戲。我想在一個更新工作,我使用的是從URL返回這一個API:JSON使用org.Json解析Java中的JSON?

[ 
    { 
     "downloadUrl":"URL", 
     "fileName":"Name", 
     "gameVersion":"Version", 
     "name":"Name", 
     "projectId":ID, 
     "releaseType":"beta" 
    }, 
    { 
     "downloadUrl":"URL", 
     "fileName":"Name", 
     "gameVersion":"Version", 
     "name":"Name", 
     "projectId":ID, 
     "releaseType":"beta" 
    } 
] 

我怎樣才能將數據移出此JSON由URL返回的。我不想使用和「第三方」解析器。謝謝。此外,我被卡在這部分:

我知道我需要循環一個數組,但沒有主數組,除非它是「」。 ?這就是讓我困惑的原因。我如何解析這個來自url的JSON?

我看到有人這樣做,但idk,如果這將在我的JSON owrk? Parsing JSON Object in Java

+0

那麼你要使用的解析器? –

+0

在這種情況下,我將自己解析它...與JSONArray等 –

+1

認爲他想寫自己的 –

回答

0

在這種情況下,您的數據是一個對象數組,它可以存儲到一個HashMap對象中。因此,我們將檢索數組中的每個對象並將它們添加到每個HashMap中。 HashMap通過使用一個鍵來插入一個值,即HashMap<key type,value type>。要存儲的值與一個鍵,就使用HashMap.put(key,value)例如,map.put("downloadUrl", "URL")

// Remove the spacings yourself before trying the code 
JSONArray array = new JSONArray("[ 
    { 
     "downloadUrl":"URL", 
     "fileName":"Name", 
     "gameVersion":"Version", 
     "name":"Name", 
     "projectId":ID, 
     "releaseType":"beta" 
    }, 
    { 
     "downloadUrl":"URL", 
     "fileName":"Name", 
     "gameVersion":"Version", 
     "name":"Name", 
     "projectId":ID, 
     "releaseType":"beta" 
    } 
]"); 

List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>(); 
for(int i = 0 ; i < array.length() ; i++){ 
    HashMap<String,String> ht = new HashMap<String,String>(); 
    JSONObject o = json.getJSONObject(i); 
    map.put("downloadUrl",o.getString("downloadUrl"); 
    map.put("fileName",o.getString("fileName"); 
    map.put("gameVersion",o.getString("gameVersion"); 
    map.put("name",o.getString("Name")); 
    map.put("projectId",o.getString("projectId"); 
    map.put("releaseType",o.getString("releaseType"); 
    list.add(map); 
} 
+0

當JSONObject *是*散列表時,爲什麼還要把它放在散列表中? –

+0

還有一件事:在一般情況下,JSON對象中的條目可以是任何有效的JSON對象 - 不限於字符串。 –

+0

這只是他開始的一個例子。最理想的情況是,他應該自己創建一個包含所需屬性的對象類。但是,正如他所提到的,他是一名初學者,Hashtable只是他可以從Java庫中使用的一個對象。 此外,Hashtable不被棄用,因爲它仍然有使用,因爲它被同步,而HashMap不是。 – Dennis