Java 如何在JSONObject/数组查找中查找值

Java 如何在JSONObject/数组查找中查找值,java,android,json,jsonobject,Java,Android,Json,Jsonobject,以下是JSON提要: { "list" : { "meta" : { "type" : "resource-list", "start" : 0, "count" : 2 }, "resources" : [ { "resource" : { "classname" : "Quote", "fields" : { "name" : "USD/KRW", "price" : "1151.295044", "symbol" : "KRW=X", "ts" : "1437357550

以下是JSON提要:

    {
"list" : { 
"meta" : { 
"type" : "resource-list",
"start" : 0,
"count" : 2
},
"resources" : [ 
{
"resource" : { 
"classname" : "Quote",
"fields" : { 
"name" : "USD/KRW",
"price" : "1151.295044",
"symbol" : "KRW=X",
"ts" : "1437357550",
"type" : "currency",
"utctime" : "2015-07-20T01:59:10+0000",
"volume" : "0"
}
}
}
,
{
"resource" : { 
"classname" : "Quote",
"fields" : { 
"name" : "SILVER 1 OZ 999 NY",
"price" : "0.067476",
"symbol" : "XAG=X",
"ts" : "1437169614",
"type" : "currency",
"utctime" : "2015-07-17T21:46:54+0000",
"volume" : "62"
}
}
}
,
{
"resource" : { 
"classname" : "Quote",
"fields" : { 
"name" : "USD/VND",
"price" : "21815.500000",
"symbol" : "VND=X",
"ts" : "1437357540",
"type" : "currency",
"utctime" : "2015-07-20T01:59:00+0000",
"volume" : "0"
}
}
}

]
}
}
例如,如何查找符号为(“symbol”:“XAG=X”)的JSON对象的“价格”。在这种情况下,答案是(“价格”:“0.067476”)。我需要以编程的方式执行这个查找,因为JSON比这里显示的要大,并且给我的唯一参数是“symbol”


这可能吗?任何关于如何做到这一点的详细帮助都将不胜感激

假设内容代表json字符串

import org.json.JSONArray;
import org.json.JSONObject;

JSONObject list = new JSONObject(content).getJSONObject("list");
JSONArray resources = list.getJSONArray("resources");
for (int j = 0; j < resources.length(); j++) {
    JSONObject resource =     resources.getJSONObject(j).getJSONObject("resource");
    JSONObject fields = resource.getJSONObject("fields");
    System.out.println(fields.get("symbol"));
    System.out.println(fields.get("price"));
}
import org.json.JSONArray;
导入org.json.JSONObject;
JSONObject list=新的JSONObject(content.getJSONObject(“list”);
JSONArray resources=list.getJSONArray(“资源”);
for(int j=0;j
这是您的Json对象格式

尝试此操作以获得正确的结果-

JSONObject list = new JSONObject(content).getJSONObject("list");
JSONArray resources = list.getJSONArray("resources");
for (int j = 0; j < resources.length(); j++) {
  JSONObject resource = resources.getJSONObject(j).getJSONObject("resource");
  JSONObject fields = resource.getJSONObject("fields");
    if(fields.getString("symbol").equals("XAG=X")){
       System.out.println("Price of symbol(XAG=X) is"+ fields.getString("price"));
    }    
}
JSONObject list=新的JSONObject(content.getJSONObject(“list”);
JSONArray resources=list.getJSONArray(“资源”);
for(int j=0;j
使用Gson或Jackson解析器怎么样?我认为您应该了解这一点。@TusharPatil,您能否指导如何获取您发布的json格式,因为它对长json消息很有帮助?