Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Java以JSON格式返回HTTP头作为键值数组_Java - Fatal编程技术网

如何使Java以JSON格式返回HTTP头作为键值数组

如何使Java以JSON格式返回HTTP头作为键值数组,java,Java,我将以下内容作为基本上抓取网页的方法的一部分,我希望将结果的标题和正文映射到JSON,正文作为字符串输出,但理想情况下,我希望将标题值拆分为键值,以便在JavaScript中我可以直接访问它们 Map<String, String> assoc = new HashMap<String, String>(); Map<String, List<String>> headerMap = new LinkedHashMap<String, Li

我将以下内容作为基本上抓取网页的方法的一部分,我希望将结果的标题和正文映射到JSON,正文作为字符串输出,但理想情况下,我希望将标题值拆分为键值,以便在JavaScript中我可以直接访问它们

Map<String, String> assoc = new HashMap<String, String>();

Map<String, List<String>> headerMap = new LinkedHashMap<String, List<String>>();
headerMap = connection.getHeaderFields();

for (String key : headerMap.keySet()) {
    assoc.put(key, headerMap.get(key).toString());
}

JSONObject returnObj = new JSONObject();
returnObj.put("header", assoc);
returnObj.put("body", sb.toString());

return returnObj.toString(); //Set digit to add indent spacing.
理想情况下,这将更像(对javascript更友好)


我想你可能在找

{"header":[
             {"cache-control=[max-age=0]"},
             {"content-type=[text\/html]"},
             {"content-type=[text\/html]"}
          ]}
我以前没有使用过这个api,但是通过javadoc,我非常确信上面的代码会满足您的需求。由于您只处理一组数据(header对象),因此此方法将起作用。如果你有很多对象,你必须做一些不同的事情。试试flexjson,这是我经常使用的

另外,获取当前输出的原因是JSONObject.put调用映射的toString(),它生成一个由所有键/值对组成的字符串,表示为“key=value”,用逗号分隔,并用花括号括起来

{"key1=value1", "key2=value2", etc..}
{"header":[
             {"cache-control=[max-age=0]"},
             {"content-type=[text\/html]"},
             {"content-type=[text\/html]"}
          ]}
JSONObject returnObj = new JSONObject();
for (String key : headerMap.keySet()) {
    returnObj.put(key, headerMap.get(key).toString());
}
return returnObj.toString();
{"key1=value1", "key2=value2", etc..}