我使用restTemplate将一个rquest创建为一个返回json中对象的非常简单的表示的servlet。将json映射到Java对象的最佳方法
{
"id":"SomeID"
"name":"SomeName"
}
而且我有一个DTO与这两个字段和相应的setter和getters。 我想知道的是如何使用json响应 创建对象,而不必“解析”响应。
我使用restTemplate将一个rquest创建为一个返回json中对象的非常简单的表示的servlet。将json映射到Java对象的最佳方法
{
"id":"SomeID"
"name":"SomeName"
}
而且我有一个DTO与这两个字段和相应的setter和getters。 我想知道的是如何使用json响应 创建对象,而不必“解析”响应。
个人而言,我会建议杰克逊。它相当轻巧,速度非常快,只需要很少的配置。下面是一个反序列化的例子:
@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);
它是如何比其他十几个“更好”? – 2012-01-30 18:15:52
“更好”总是取决于你的价值。就我而言,我非常喜欢它没有外部依赖的事实,并且第一次发现它时,我能够根据它们的示例非常快速地运行它。我喜欢它,因为它是这样说的...简单 – Gus 2012-01-30 18:21:20
这就是我试图创造的点;根据SO指导原则,OP的问题不具有建设性。这里没有“正确的”答案。 – 2012-01-30 18:26:13
这是一个使用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());
至于最佳方式,那么这是主观的。这是一个方式你可以完成你所需要的。
我们如何编辑标题以删除单词“Best”,然后添加“Good”。 – Gus 2012-01-30 18:43:26
我对我说的这个问题的方式表示歉意。我只是想要一个简单的方法将json映射到一个对象,因为我之前从来没有必须处理json。 Perception的答案就是我想到的。 – 2012-01-30 20:03:06
对我来说,这是“map json to object java”的顶级google结果。重复链接404s。表演不佳。 – matt 2014-06-20 20:21:57