Java如何在for循环之外获取一行Json数据

时间:2015-09-03 04:59:01

标签: java arrays json jsonobject

我正在使用java来创建一个带有Json的Web服务,并且我真的难以理解某个特定区域。我有一个Jsonarray和JsonObject在for循环中读取Json,但是现在我怎样才能在for循环之外的Json的第二行中选择项?也许我的代码示例会有所帮助,我的json列表是动态的,但这是格式

[{ “状态”: “LA”, “城市”: “吉赛奇”},{ “状态”: “KS”, “城市”: “天命”}]

现在我用这段代码

阅读上面的json
       // the total String has the whole Json data
      JSONObject jsonn = new JSONObject(total);

              JSONArray jArray = jsonn.getJSONArray("location_update");
            JSONObject jobject = null;
   String city="";String state="";
            JSONArray sss = new JSONArray();
            for (int i = 0; i < jArray.length(); i++) {
                jobject = jArray.getJSONObject(i);
                city+= jobject.getString("city");
                state+= jobject.getString("state");
                sss.put(jobject);
            }
       // How can I for example get Row 2 of Json here outside the for loop
       // Row 2 is this data
       // {state":"KS","city":"Kismet"}

我需要这个,因为上面Json中的一些数据用于下拉选择菜单,一旦用户点击一个项目,我想显示关于该行Json的所有信息。我显然有比我上面显示的更多的Json项目。我知道这个 jobject = jArray.getJSONObject(i); 是编号项目,但我不知道如何从for循环中取出任何建议都很棒

3 个答案:

答案 0 :(得分:2)

当Java开始在0编号时,选择第二个数组元素如下所示:

JSONArray jArray = jsonn.getJSONArray("location_update");
JSONObject jobject = jArray.getJSONObject(1);

答案 1 :(得分:1)

如果你想要数组中的第二个对象:

JSONObject jsonn = new JSONObject(total);
JSONArray jArray = jsonn.getJSONArray("location_update");
jobject = jArray.getJSONObject(1);

如果你已经在范围内有jsonn或jArray,那么你只需要:

jobject = jArray.getJSONObject(1);

答案 2 :(得分:1)

你有没有尝试过外面的循环

JSONObject jsonObject = jArray.getJSONObject(1);

顺便说一句,我更喜欢使用Jackson库并将我的json直接映射到某个类。您可以通过@mkyong参考example