2013-10-20 159 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