将json映射到Java对象的最佳方法

Qua*_*ent 4 java json resttemplate

我正在使用restTemplate对servlet进行rquest,该servlet返回json中对象的非常简单的表示.

{
     "id":"SomeID"
     "name":"SomeName"
}
Run Code Online (Sandbox Code Playgroud)

我有一个带有这两个字段的DTO以及相应的setter和getter.我想知道的是如何使用该json响应创建对象而无需"解析"响应.

Per*_*ion 8

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

@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);
Run Code Online (Sandbox Code Playgroud)


Mar*_*nto 8

这是使用Google Gson 的示例。

public class MyObject {

  private String id;
  private String name;

  // Getters
  public String getId() { return id; }
  public String getName() { return name; }
}
Run Code Online (Sandbox Code Playgroud)

并访问它:

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

至于最好的方法,那是主观的。这是您可以完成所需任务的一种方法。