我想在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而不是整件事。有什么想法吗?
由于
答案 0 :(得分:1)
Strint你得到的是json编码数据,所以你需要解码它,而不是你能够访问字段" oid"。有几个图书馆可以完成这项工作:
我最喜欢的小项目是gson
答案 1 :(得分:0)
使用Jackson或Gson,您可以解析响应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));
}
}