如何从json数组访问invidual json对象?

时间:2015-07-11 09:31:13

标签: android json jsonobject

我有以下回复,并且我希望在invidual eqid中显示所有TextView,但我不知道如何实现这一点, 下面是我的代码片段以及从服务器获取数据并在textview中显示的响应 任何人都可以帮我这个吗?

{
  "earthquakes":[
    {
      "eqid":"c0001xgp",

    },
    {
      "eqid":"c000905e",

    },
    {
      "eqid":"2007hear",

    },
    {
      "eqid":"c00090da",

    },
    {
      "eqid":"2007aqbk",

    },
    {
      "eqid":"2007hec6",

    },
    {
      "eqid":"a00043nx",

    },
    {
      "eqid":"2010utc5",

    },

  ]
}

代码

   ServiceHandler sh = new ServiceHandler();
    jsonStr = sh.makeServiceCall(USER_URL, ServiceHandler.GET);
    Log.d("Response: ", "> " + jsonStr);

    try{
        JSONObject json = new JSONObject(jsonStr);
        JSONArray items = json.getJSONArray("product");

        parent_layout = (RelativeLayout)findViewById(R.id.rl);
        for(int i =0; i<items.length(); i++){



            TextView textView = new TextView(this);
            textView.setText(items.getJSONObject(i).getString(USER_NAME));

            parent_layout.addView(textView);
        }

2 个答案:

答案 0 :(得分:1)

您有一个包含Single JSON数组的JSON对象。因此,您首先从对象中检索数组,然后您可以循环它以检索所有项目。在下面的代码中,我假设您在数组中有目标TextView个对象。

try{
    JSONObject json = new JSONObject(jsonstr);
    JSONArray items = json.getJSONArray("earthquakes");

    for(int i =0; i<items.length(); i++){
        textViews[i].setText(items.getJSONObject(i).getString('eqid'));
    }
}catch(JSONException e){
    e.printStacktrace();
}

答案 1 :(得分:1)

&#13;
&#13;
try{
    JSONObject json = new JSONObject(jsonstr);
    JSONArray items = json.getJSONArray("earthquakes");

    for(int i =0; i<items.length(); i++){
        TextView t=new TextView(context);
        t.setText(items.getJSONObject(i).getString('eqid'));
        ParentLayout.addView(t);
    }
}catch(JSONException e){
    e.printStacktrace();
}
&#13;
&#13;
&#13;