以下是json数据:
"headers": [
{
"name": "date",
"value": "Tue, 13 Mar 2018 12:44:55 GMT"
},
{
"name": "content-encoding",
"value": "gzip"
},
{
"name": "last-modified",
"value": "Tue, 06 Mar 2018 20:15:30 GMT"
},
{
"name": "server",
"value": "Apache"
},
{
"name": "vary",
"value": "Accept-Encoding"
},
{
"name": "content-type",
"value": "text/html"
},
{
"name": "status",
"value": "200"
}]
我的要求是使用java从上面的json中捕获日期,内容编码,最后修改,服务器和状态
我正在使用json-sample-1.1.1版本
可以请一些人协助如何获得这些价值
答案 0 :(得分:0)
迭代数组,比较名称,并检索它的值
{{1}}
答案 1 :(得分:0)
或者如果您更喜欢Java 8,您可以通过这种方式使用它。
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject)parser.parse("{\"headers\":[{\"name\":\"date\",\"value\":\"Tue, 13 Mar 2018 12:44:55 GMT\"},{\"name\":\"content-encoding\",\"value\":\"gzip\"},{\"name\":\"last-modified\",\"value\":\"Tue, 06 Mar 2018 20:15:30 GMT\"},{\"name\":\"server\",\"value\":\"Apache\"},{\"name\":\"vary\",\"value\":\"Accept-Encoding\"},{\"name\":\"content-type\",\"value\":\"text/html\"},{\"name\":\"status\",\"value\":\"200\"}]}");
JSONArray headers = (JSONArray)jsonObject.get("headers");
headers.forEach( header -> {
JSONObject headerJsonObject = (JSONObject)header;
if(headerJsonObject.get("name").equals("content-encoding")){
System.out.println(headerJsonObject.get("value"));
}
// continue
});
答案 2 :(得分:0)
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray(" array_name");
然后开始循环到jsonarray的大小并通过使用JSONObject的getString(" key_name")等方法获取值