[英]Cannot get single value from JSON using Jackson
我需要从JSON获取单个值,但我得到null作为值。
public class PlaceTest {
public void sendRequest() throws Exception{
URIBuilder builder = new URIBuilder("https://maps.googleapis.com/maps/api/place/findplacefromtext/json");
builder.addParameter("key","mykey");
builder.addParameter("input","London");
builder.addParameter("inputtype","textquery");
HttpGet getReq = new HttpGet(builder.build());
HttpClient client = new DefaultHttpClient();
HttpResponse httpResponse = client.execute(getReq);
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
StringBuilder builders = new StringBuilder();
String s;
while ((s = reader.readLine())!=null){
builders.append(s+"\n");
}
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(builders.toString());
JsonNode candidates = node.get("candidates");
System.out.println(candidates.get("place_id"));
//json
System.out.println(builders.toString());
}
}
JSON代码是:
{"candidates":[{"place_id" : "ChIJdd4hrwug2EcRmSrV3Vo6llI"}],"status" : "OK"}
在上面的JSON candidates
值中是JsonArray
JsonNode node = mapper.readTree(builders.toString());
JsonNode candidates = node.get("candidates");
现在迭代JsonArray
并获取place_id
:
if (candidates.isArray()) {
for (JsonNode objNode : arrNode) {
System.out.println(objNode.get("place_id"));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.