我正在使用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循环中取出任何建议都很棒
答案 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。