如何解析像数组一样的JSON数据 - >对象 - >具有值的对象

时间:2015-10-15 19:09:47

标签: java android json

我是Android开发新手。我对JSON知之甚少。我使用了Json简单格式。

{

"worldpopulation": 
[
     {
         "rank":1,"country":"China",
         "population":"1,354,040,000",
         "flag":"http://www.androidbegin.com/tutorial/flag/china.png"
     }, 

     {
         "rank":2,"country":"India",
         "population":"1,210,193,422",
         "flag":"http://www.androidbegin.com/tutorial/flag/india.png"
     }
  ]
}

在上面的JSON数据中,我们可以在获得JSOn数组worldopopulation后简单地调用rank,country。

现在我有JSON数据显示如下,这里JSON数组是相同的我认为因为项目存在我不知道。然后它有对象作为数字,因为它有国家。

{  
"Items":"0 to 2",
"worldpopulation":[  
  {  
     "0":{  
        "country":"China",
            "population":"1,354,040,000",
            "flag":"http://www.androidbegin.com/tutorial/flag/china.png"
     }
  },
  {  
     "1":{  
        "country":"India",
            "population":"1,210,193,422",
             "flag":"http://www.androidbegin.com/tutorial/flag/india.png"
     }
  }
 ]
}

现在我不知道如何呼唤国家,人口和旗帜。

方法是否相同。 Jsonobject.getstring("秩&#34);在jsonarray之后(" worldpopulation");

或者不同。

1 个答案:

答案 0 :(得分:3)

执行以下操作

try {
    JSONObject reader = new JSONObject("your json str");

    JSONArray items = reader.getJSONArray("worldpopulation");
    for (int i = 0; i < items.length(); ++i) {
        JSONObject jsonProgram = items.getJSONObject(i);
        JSONObject yourObject = null;
        if (i == 0) {
            yourObject = jsonProgram.getJSONObject("0");
        } else {
            yourObject = jsonProgram.getJSONObject("1");
        }

        //Do here what did before with yourObject

    }
} catch (JSONException e) {
    Log.i("Test", e.toString());
}