相关疑难解决方法(0)

杰克逊的readValue和readTree:何时使用哪个?

我刚刚开始使用Jackson JSON库.杰克逊是一个非常强大的库,但它有一个非常广泛的API.很多事情可以通过多种方式完成.这使得很难在杰克逊找到自己的方式 - 如何知道什么是正确/最好的做事方式?

我为什么要使用这个解决方案:

String json = "{\"a\":2, \"b\":\"a string\", \"c\": [6.7, 6, 5.6, 8.0]}";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readValue(json, JsonNode.class);
if (node.isObject()) {
    ObjectNode obj = mapper.convertValue(node, ObjectNode.class);
    if (obj.has("a")) {
        System.out.println("a=" + obj.get("a").asDouble());
    }
}
Run Code Online (Sandbox Code Playgroud)

通过这样的解决方案:

String json = "{\"a\":2, \"b\":\"a string\", \"c\": [6.7, 6, 5.6, 8.0]}";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
if (node.isObject()) {
    ObjectNode obj = (ObjectNode) node;
    if (obj.has("a")) {
        System.out.println("a=" + obj.get("a").asDouble());
    }
}     
Run Code Online (Sandbox Code Playgroud)

或者我使用JsonFactory和JsonParser遇到的解决方案,甚至更多的选择... …

java json jackson

21
推荐指数
2
解决办法
5万
查看次数

标签 统计

jackson ×1

java ×1

json ×1