2012-01-30 47 views
2

我使用restTemplate将一个rquest创建为一个返回json中对象的非常简单的表示的servlet。将json映射到Java对象的最佳方法

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

而且我有一个DTO与这两个字段和相应的setter和getters。 我想知道的是如何使用json响应 创建对象,而不必“解析”响应。

+0

我们如何编辑标题以删除单词“Best”,然后添加“Good”。 – Gus 2012-01-30 18:43:26

+0

我对我说的这个问题的方式表示歉意。我只是想要一个简单的方法将json映射到一个对象,因为我之前从来没有必须处理json。 Perception的答案就是我想到的。 – 2012-01-30 20:03:06

+3

对我来说,这是“map json to object java”的顶级google结果。重复链接404s。表演不佳。 – matt 2014-06-20 20:21:57

回答

6

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

@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

http://code.google.com/p/json-simple/是好的,重量轻,这

+0

它是如何比其他十几个“更好”? – 2012-01-30 18:15:52

+0

“更好”总是取决于你的价值。就我而言,我非常喜欢它没有外部依赖的事实,并且第一次发现它时,我能够根据它们的示例非常快速地运行它。我喜欢它,因为它是这样说的...简单 – Gus 2012-01-30 18:21:20

+0

这就是我试图创造的点;根据SO指导原则,OP的问题不具有建设性。这里没有“正确的”答案。 – 2012-01-30 18:26:13

3

这是一个使用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()); 

至于最佳方式,那么这是主观的。这是一个方式你可以完成你所需要的。