用org.Json解析Java中的JSON?

时间:2013-10-20 23:00:37

标签: java json parsing org.json

我有很多巡回赛。我正在尝试使用更新程序,我正在使用从网址返回此内容的API: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"
   }
]

如何从URL返回的此JSON中获取数据。我不想使用和“第三方”解析器。谢谢。此外,我被困在这一部分:

我知道我需要循环一个数组,但没有主数组,除非它是“”。 ?这让我很困惑。我如何从网址解析这个JSON?

我看到有人这样做了,但是如果我的JSON中有人会这么做的话吗? Parsing JSON Object in Java

1 个答案:

答案 0 :(得分: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);
}