繁体   English   中英

使用杰克逊无法从JSON获得单一价值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM