我和杰克逊有一个问题,我认为这个问题应该很容易解决,但它正在折磨我。
假设我有一个java POJO类,看起来像这样(假设我有getter和setter):
class User {
private String name;
private Integer age;
}
我想反序列化看起来像这样的JSON到一个User对象:
{
"user":
{
"name":"Sam Smith",
"age":1
}
}
Jackson给了我一些问题,因为User不是JSON中的第一级对象。我显然可以创建一个UserWrapper类,它有一个用户对象,然后使用它反序列化,但我知道一定有一个更优雅的解决方案。
我该怎么做呢?
编辑:此解决方案仅适用于jackson
对于您的情况,有一个简单的解决方案:
@JsonRootName(value=“user”)
注释模型类
om配置映射器。配置(Feature.UNWRAP_ROOT_VALUE,true)
(与1.9相同)和om。配置(反序列化功能.UNWRAP_ROOT_值,true)
(适用于版本2)
就这样了!
@JsonRootName(value = "user")
public static class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(final Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
ObjectMapper om = new ObjectMapper();
om.configure(Feature.UNWRAP_ROOT_VALUE, true);
System.out.println(om.readValue("{ \"user\": { \"name\":\"Sam Smith\", \"age\":1 }}", User.class));
这将打印:
User [name=Sam Smith, age=1]
问题内容: 我和Jackson有一个问题,我认为应该很容易解决,但是这真使我丧命。 假设我有一个看起来像这样的Java POJO类(假设对我来说是Getters和Setters): 我想将看起来像这样的JSON反序列化为User对象: 杰克逊给了我一些问题,因为用户不是JSON中的第一级对象。我显然可以制作一个具有单个User对象的UserWrapper类,然后使用该对象反序列化,但是我知道必须有
问题内容: 我应该如何反序列化以下JSON以跳过根元素并仅解析此JSON的内部。我想避免创建其他仅包含字段的3rd类。 因此,我只希望有以下两个类: 问题答案: 您可以为此使用库。 下面的代码将解决您的问题。
我正在编写一个RESTeasy代理客户端,以使用Apple的API来检索其iTunes类别列表。当您查询有关给定类别的信息时,例如使用此 URL: …您得到的JSON响应如下: 我试图使用JAXB和Jackson将这个JSON响应映射到一个Java对象。然而,“1420”根元素名称似乎引起了一个问题,因为我在调用我的客户端时得到了以下异常: 我的JAXB类如下所示: 我甚至尝试过创建一个包装类,因
我正在尝试访问HTML代码中特定的元素。 定义元素的代码部分如下所示 。 在下面的第二行代码之后,我尝试声明表达式和,它们都返回java.lang.String类型的“oddrow cellcont” 但是,我尝试了下面的代码片段,它不能工作,因为循环中的条件返回false。我还尝试使用和、、、...以所有可能的组合使用if条件。 我肯定被困住了;我需要帮助。
问题内容: 我有一个包含许多元素的XML文档,每个元素都有一个或属性。看到这个例子: 我需要一种方法告诉Simple将元素反序列化为a 和将元素反序列化为a 。 我怎样才能做到这一点? 如果您想使用它,这是我目前拥有的代码: 问题答案: 现在真正的问题… 我的回答: 没有!或至少,没关系! 像这里这样的属性只是字符串,不能做出任何决定。但是还有另一种好方法: 实施要为其做出决定的转换器 使用a 做
我正在使用JacksonPolymorphicDeserialization,这是我的代码,它反序列化到基于“type”属性的适当类中: 它工作得很好,我的json根据“type”值变成了预期的类。 但是,我正在考虑将“type”属性从String移动到Enum,这是我的新代码,带有以下更改: 和枚举: 问题是,第二种方法不起作用。。。知道为什么吗???我可以在这里使用Enum吗??? 谢谢!