如何在java中获取部分httpResponse
在我完成HttpGet之后,我只想从httpResponse获取ID 这是我的代码:如何在java中获取部分httpResponse,java,json,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); Buffere
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"}]}
但我只是不想知道全部。有什么想法吗
感谢使用or,您可以解析响应JSON并获得所需的部分
如果您不需要整个结果,那么创建引用对象就没有意义了,只需手动遍历json文档即可
mapper.readTree(responseText).get("foo").get("bar")
您得到的Strint是json编码的数据,因此需要对其进行解码,然后才能访问字段“oid”。有几个图书馆可以完成这项工作:
- 格森
- JsonSimple
- 杰克逊等
我最喜欢的小型项目是我认为,如果您有其他可用选项,则不适合使用库来获取一个参数的值。我建议您自己使用提供的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));
}
}
可能重复的您确定回复与您发布的完全相同吗?它不是有效的JSON。@Tichodroma:我修剪了原始返回的JSON,因为它太大了。但是它是一个有效的JSon,所以我应该修剪“rd”变量,它是一个JSon?不,它不是有效的JSon。请在测试