如何在java中获取httpResponse的一部分

时间:2014-08-05 11:21:01

标签: java json

我想在HttpGet之后从httpResponse获取ID。

这是我的代码:

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://localhost:80/api/");

HttpResponse httpResponse = httpClient.execute(httpGet);
System.out.println(httpResponse);
BufferedReader rd = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));

String line = "";
while ((line = rd.readLine()) != null) {
  System.out.println(line);
}

返回:

{"list":[{"timestamp":{"$date":"2014-08-01T08:37:54.058Z"},"nameGroup":false,"_id":{"$oid":"53db5045ccf2b2399e0e6128"},"created":{"$date":"2014-08-01T08:31:01.139Z"}],"name":"John"}]}

但我只想要Oid而不是整件事。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

Strint你得到的是json编码数据,所以你需要解码它,而不是你能够访问字段" oid"。有几个图书馆可以完成这项工作:

  • GSON
  • JsonSimple
  • 杰克逊等。

我最喜欢的小项目是gson

答案 1 :(得分:0)

使用JacksonGson,您可以解析响应JSON并获得您需要的部分。

如果你不需要整个结果,那么创建一个引用对象就没有意义,只需手动遍历json文档,例如

mapper.readTree(responseText).get("foo").get("bar")

答案 2 :(得分:0)

如果您有其他可用选项,我认为不是仅使用库来获取一个参数的值是不合适的。我建议你使用提供的API解析你自己的json。您可以尝试以下操作:

try {

JSONObject obj = new JSONObject(your_json_string);
String value= null; 

if (obj != null && obj.has(YOUR_KEY_FOR_PARAM)) {
                value = obj.getString(YOUR_KEY_FOR_PARAM));
} 
}