[英]Java Json Parser array
这是我的JSON字符串我成功加载了我的java代码[result]。
{"result":[
{
"opened_at":"2017-02-06 10:48:55",
"sys_updated_by":"user",
"state":"6"
},
{
"opened_at":"2017-02-06 12:20:43",
"sys_updated_by":"user2",
"state":"1"
},
{
"opened_at":"2017-02-06 15:32:34",
"sys_updated_by":"user3",
"state":"1"
}
]
}
这是我将JSON数据保存在JSONArray中的部分。
JSONArray arr = obj.getJSONArray("result");
for (int i = 0; i < arr.length(); i++) {
String opened_at = arr.getJSONObject(i).getString("opened_at");
String sys_updated_by = arr.getJSONObject(i).getString("sys_updated_by");
String state = arr.getJSONObject(i).getString("state");
}
如何从控制台中的user2打印例如opens_at(使用System.out.println())?
你是几乎没有,在for
循环,你只需要检查的价值sys_updated_by
并获得相应价值opened_at
:
JSONArray arr = obj.getJSONArray("result");
String opened = null;
for (int i = 0; i < arr.length(); i++) {
String sys_updated_by = arr.getJSONObject(i).getString("sys_updated_by");
if("user2".equals(sys_updated_by)){
opened = arr.getJSONObject(i).getString("opened_at");
break; //No need to iterate anymore
}
}
System.out.println(opened);
当你使用for-each loop
时它非常简单,然后检查它是否是opened_at
user2
存储值是一些String并且突破了loo。
String openedAt = "";
for(JOSNObject object : arr){
if(object.getString("sys_updated_by").equals("user2")){
openedAt = object.getString("opened_at");
break;
}
}
System.out.println(openedAt);
如何从user2访问例如opened_at?
java.util.Map<String , Object> myMap = new java.util.HashMap<>();
for (int i = 0; i < arr.length(); i++) {
String opened_at = arr.getJSONObject(i).getString("opened_at");
String sys_updated_by = arr.getJSONObject(i).getString("sys_updated_by");
String state = arr.getJSONObject(i).getString("state");
// your CATCH
myMap.put( sys_updated_by , arr.getJSONObject(i) );
}
// IF YOUR ARE HARDCODING ACCESS
try
{
System.out.println( ( (JSONObject)myMap.get("user") ).getString("opened_at") + ((JSONObject)myMap.get("user2")).getString("opened_at") );
}
catch(Exception any){}
让sys_update_by键值,成为所有感兴趣字段的JSONObject引用的键,然后让它帮助您检索您感兴趣的记录,只需在哈希映射中指定用户名,对不起一百万次更新,我肯定会想讨论这不是你想要的答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.