帮助解析java中的JSON

Bra*_*son 4 java json

如果有人可以帮助我解析这个json结果,那会有可能吗?我已将结果检索为字符串

{"query":{"latitude":39.9889,"longitude":-82.8118},"timestamp":1310252291.861,"address":{"geometry":{"coordinates":[-82.81168367358264,39.9887910986731],"type":"Point"},"properties":{"address":"284 Macdougal Ln","distance":"0.02","postcode":"43004","city":"Columbus","county":"Franklin","province":"OH","country":"US"},"type":"Feature"}}
Run Code Online (Sandbox Code Playgroud)

fvu*_*fvu 8

杰克逊.使用简单直观.对我来说是最好的.从Simple Data Binding开始,它将抛出它在Maps和Lists中找到的所有内容.

像这样:

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> yourData = mapper.readValue(new File("yourdata.json"), Map.class);
Run Code Online (Sandbox Code Playgroud)

这就是所需要的.

可以在这里找到一个好的和快速的介绍

以及实际数据的完整工作示例:

import java.io.IOException;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;

public class Main {

    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        Map<?,?> rootAsMap = mapper.readValue(
                "{\"query\":{\"latitude\":39.9889,\"longitude\":-82.8118},\"timestamp\":1310252291.861,\"address\":{\"geometry\":{\"coordinates\":[-82.81168367358264,39.9887910986731],\"type\":\"Point\"},\"properties\":{\"address\":\"284 Macdougal Ln\",\"distance\":\"0.02\",\"postcode\":\"43004\",\"city\":\"Columbus\",\"county\":\"Franklin\",\"province\":\"OH\",\"country\":\"US\"},\"type\":\"Feature\"}}".getBytes(),
                Map.class);
        System.out.println(rootAsMap);
        Map query = (Map) rootAsMap.get("query");
        Map address = (Map) rootAsMap.get("address");
        Map addressProperties = (Map) address.get("properties");
        String county = (String) addressProperties.get("county");
        System.out.println("County is " + county);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,整个Map杂耍也很好地说明了Bozho的观点,使用完全绑定(通过创建反映JSON数据内容的Java类)最终会更好地工作.