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

Java how can I get a row of Json data outside of the for loop

我正在使用 java 创建带有 Json 的 Web 服务,我真的被某个特定领域难倒了。我有一个 Json 数组和 Json 对象,它在 for 循环中读取 Json,但现在我如何才能在 [=35] 的第二行中读取 select 项=] 在 for 循环之外?也许我的代码示例会有所帮助,我的 json 列表是动态的,但这是格式

[{"state":"LA","city":"Kisatchie"},{"state":"KS", "city":"Kismet"}]

现在我用这段代码阅读了上面的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 中的一些数据用于下拉菜单 selection 并且一旦用户点击一个项目我想显示所有Json 行的信息。我显然有比上面显示的更多 Json 项。我确实知道这个 jobject = jArray.getJSONObject(i); 正在对项目进行编号,但我不知道如何将其从 for 循环中拉出任何建议都很好

由于 Java 从 0 开始编号,选择第二个数组元素如下所示:

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

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

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

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

jobject = jArray.getJSONObject(1);

你在循环外试过吗

JSONObject jsonObject = jArray.getJSONObject(1);

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