我有一个json url链接,我想读取它的json响应并将值提取到变量中,以便我以后可以使用它们
{
"responseHeader": {
"status": 0,
"QTime": 4,
"params": {
"q": "*:*",
"facet.field": "TESTARRAY",
"indent": "true",
"rows": "0",
"wt": "json",
"facet": "true"
}
},
"response": {
"numFound": 12,
"start": 0,
"docs": []
},
"facet_counts": {
"facet_queries": {},
"facet_fields": {
"TESTARRAY": [
"JON",
22,
"SMITH",
34,
"ROBERT",
12
]
},
"facet_dates": {},
"facet_ranges": {},
"facet_intervals": {}
}
}
提取时,我正在使用
JSONObject obj = new JSONObject(IOUtils.toString(new URL(jsonlink), Charset.forName("UTF-8")));
JSONArray arr = obj.getJSONArray("TEST_ARRAY");
Integer smithage=arr.get("SMITH");
到目前为止,这种方法并不奏效。 什么是处理它的最佳方式 提前致谢
答案 0 :(得分:0)
TEST_ARRAY
不是顶级字段,您需要深入了解它,例如:
JSONObject obj = new JSONObject(IOUtils.toString(new URL(jsonlink), Charset.forName("UTF-8")));
JSONObject facet_counts = obj.getJSONObjecy("facet_counts");
JSONObject facet_fields = facet_counts.getJSONObjecy("facet_fields");
JSONArray test_array = obj.getJSONArray("TESTARRAY");
Integer smithage = test_array.getInt(3);