【问题标题】:Parsing using Jackson使用杰克逊解析
【发布时间】:2014-08-22 09:07:31
【问题描述】:

{“人”:{“年龄”:“2”,“位置”:“圣何塞”}}

假设我有上面的 JSON 字符串,我无法理解如何从 JSON 中解析出 Location。使用 ObjectMapper,有没有办法做到这一点(在 Java 中)?

【问题讨论】:

  • 你不明白什么?
  • 可以使用哪种方法,如何使用。
  • 你看过杰克逊的教程吗? Stackoverflow 不是教程提供者。

标签: java json parsing jackson


【解决方案1】:

仅作记录,使用the Jackson tree model 非常简单。这是一个例子:

public class JacksonTree {
    public static final String JSON = "{ \"Person\" : { \"age\" : \"2\", " +
            "\"Location\" : \"san jose\"} }";

    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.readTree(JSON)
                .get("Person").get("Location").asText());
    }
}

输出:

san jose

【讨论】:

  • 我收到以下错误:方法路径(字符串)未定义为字符串类型。我在 API 上看到它应该被定义,知道为什么它不起作用吗?
  • 谢谢,但我遇到了同样的错误(get 方法除外)。
  • @user3249763 实际上我对版本有误。 path(String) 存在于 1.X 和 2.X 中。
【解决方案2】:

您可以将其解析为对象并获取值。示例

import java.io.IOException;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;


public class JacksonParser {

    public static void main(String[] args) {
        String json = "{ \"Person\" : { \"age\" : \"2\", \"Location\" : \"san jose\"} }";
        ObjectMapper mapper = new ObjectMapper();
        try {
            JsonNode actualObj = mapper.readTree(json);
            System.out.println(actualObj.findValue("Location"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2018-08-25
    • 2019-07-27
    • 1970-01-01
    相关资源
    最近更新 更多