【问题标题】:Best way to map json to a Java object将 json 映射到 Java 对象的最佳方法
【发布时间】:2012-01-30 18:08:04
【问题描述】:

我正在使用 restTemplate 向一个 servlet 发出请求,该 servlet 返回一个非常简单的 json 对象表示。

{
     "id":"SomeID"
     "name":"SomeName"
}

我有一个包含这 2 个字段以及相应的 setter 和 getter 的 DTO。 我想知道的是如何使用该 json 响应创建对象 无需“解析”响应。

【问题讨论】:

  • 我们编辑标题,去掉“Best”这个词,然后加上“Good”怎么样。
  • 我为我提出问题的方式道歉。考虑到我以前从未处理过 json,我只是想要一种将 json 映射到对象的简单方法。 Perception 的答案正是我的想法。
  • 对我来说,这是“将 json 映射到对象 java”的最佳谷歌结果。重复链接 404。表现不佳。

标签: java json resttemplate


【解决方案1】:

我个人会推荐杰克逊。它相当轻巧,速度非常快,并且只需要很少的配置。下面是一个反序列化的例子:

@XmlRootElement
public class MyBean {
    private String id;
    private String name;

    public MyBean() {
        super();
    }

    // Getters/Setters
}


String json = "...";
MyBean bean = new ObjectMapper().readValue(json, MyBean.class);

【讨论】:

    【解决方案2】:

    这是一个使用 Google Gson 的示例。

    public class MyObject {
    
      private String id;
      private String name;
    
      // Getters
      public String getId() { return id; }
      public String getName() { return name; }
    }
    

    并访问它:

    MyObject obj = new Gson().fromJson(jsonString, MyObject.class);
    System.out.println("ID: " +obj.getId());
    System.out.println("Name: " +obj.getName());
    

    最佳方式而言,这是主观的。这是一种你可以完成你需要的方式。

    【讨论】:

      【解决方案3】:

      http://code.google.com/p/json-simple/ 很好用而且很轻量级

      【讨论】:

      • 它比其他十几个“更好”如何?
      • “更好”总是取决于你看重什么。就我而言,我非常喜欢它没有外部依赖项这一事实,当我第一次发现它时,我能够根据他们的示例快速让它工作。我喜欢它,因为它就是它所说的......简单
      • 这就是我想要表达的意思;根据 SO 指南,OP 的问题并不具有建设性。这里没有“正确”的答案。
      • 我认为这也可以看作是对 3 岁的 stackoverflow.com/questions/1668862/good-json-java-library 的更新。 (当然我的建议也出现在那里,也许 OP 应该先搜索一下并告诉我们他发现了什么),但我认为这不是无法回答的
      猜你喜欢
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多