从JSONArray获取特定值

时间:2012-04-01 00:53:16

标签: android arrays json object

noob Android / JSON的人在这里。我希望有人可以帮助我?

lookedlooked但我认为这不是我想要的。我整天都在研究这个项目,所以也许我的大脑已经开始变得糊涂......如果这已经过了其他地方,请指点我:)

无论如何,我希望从JSONArray中获取一个特定的对象 - 这是到目前为止发生的事情:

  JSONArray jArray = new JSONArray(result);
                for(int i=0;i<jArray.length();i++){
                        JSONObject json_obj = jArray.getJSONObject(i);

                        name = json_obj.getString("txt_title");

                }

                txt_title.setText(name);

据我所知result返回整个JSONArray,然后我使用for loop查看这些结果的长度并获取json对象。目前我只询问数组中"txt_title"的值。到目前为止,这么好吗?

然后我想要做的是,只说从数组中设置第三个"txt_title"值。

目前,我希望txt_title.setText(name)"txt_title"中显示所有标题但是它只在数组中显示最后标题。这可能与for loop有关?

如何选择显示哪个对象?

2 个答案:

答案 0 :(得分:8)

您现在只显示列表中的最后一个,因为您每次都在循环中设置名称。

name = json_obj.getString("txt_title");

每次迭代时都会覆盖前一个值。如果你想拥有所有的价值,你必须以一种附加的方式来做。

name += json_obj.getString("txt_title");

如果你想从数组中获取一个特定的项目,你只需要使用你想要的索引而不是循环来访问它。

    if(jArray.length() > 2) {
         JSONObject json_obj = jArray.getJSONObject(2);   //get the 3rd item
         name = json_obj.getString("txt_title");
    }

希望能帮助您了解如何访问它。

答案 1 :(得分:2)

如果您可以确保元素将存在于索引处,则可以完全跳过循环。

JSONArray jArray = new JSONArray(result);
String name = jArray.getJSONObject(2).getString("txt_title");
txt_title.setText(name);