或者我需要一个自定义序列化程序来完成这个任务吗?还是需要@jsonignore
所有其他属性?在请求order
对象时,这是否会阻止person
数据发回?我还不确定我是否需要它,但如果可能的话,我想控制它。
有几种方法。第一种方法是使用@JsonIgnoreProperties
从子级中删除属性,如下所示:
public class Parent {
@JsonIgnoreProperties({"name", "description" }) // leave "id" and whatever child has
public Child child; // or use for getter or setter
}
另一种可能是,如果子对象总是序列化为id:
public class Child {
// use value of this property _instead_ of object
@JsonValue
public int id;
}
还有一种方法是使用@jsonidentityinfo
public class Parent {
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
@JsonIdentityReference(alwaysAsId=true) // otherwise first ref as POJO, others as id
public Child child; // or use for getter or setter
// if using 'PropertyGenerator', need to have id as property -- not the only choice
public int id;
}
问题内容: 在使用Jackson(fasterxml.jackson 2.1.1)时,是否有内置的方式仅序列化子的ID?我们要发送一个通过REST的参考文件。但是person对象非常复杂,我们可以在服务器端刷新它,因此我们需要的只是主键。 还是我需要一个定制的序列化器?还是我需要其他所有属性?这样可以防止在请求对象时将数据发送回去吗?我不确定是否需要,但我想尽可能控制它。 问题答案: 有几种方法。
在下面的示例中,我有一个主类-A和它的子类-B。两者都可以用作一般类X中的属性。 如何使用Jackson多态特性将以下给定的json正确反序列化为各自的类: JSON A: JSON B: 预期结果:将keys对象映射到JSON A的类A和JSON B的类B。 请提出其他建议。
我有一个Pojo对象,由Jersey使用jackson序列化: 序列化产生了一个像这样的Json: 但是,当我尝试像这样反序列化来自客户端的消息时: 我得到以下错误: 无法识别的字段“键”(类com.example.server.api.书摘),未标记为可忽略 我不知道问题是来自服务器生成的JSOn还是来自客户端的反序列化。 您知道问题是什么以及如何纠正吗? 非常谢谢。
问题内容: 在使用Jackson(fasterxml.jackson 2.1.1)时,是否有内置的方法仅序列化孩子的ID?我们要发送一个通过REST的参考文件。但是person对象非常复杂,我们可以在服务器端刷新它,因此我们需要的只是主键。 还是我需要一个定制的序列化器?还是我需要其他所有属性?这样可以防止在请求对象时将数据发送回去吗?我不确定是否需要它,但我想尽可能控制它。 问题答案: 有几种方
问题内容: 我和Jackson有一个问题,我认为应该很容易解决,但是这真使我丧命。 假设我有一个看起来像这样的Java POJO类(假设对我来说是Getters和Setters): 我想将看起来像这样的JSON反序列化为User对象: 杰克逊给了我一些问题,因为用户不是JSON中的第一级对象。我显然可以制作一个具有单个User对象的UserWrapper类,然后使用该对象反序列化,但是我知道必须有
例如: 我知道有jackson注解可以这样做,但是我的字段已经用我的持久性注解进行了注解,所以我想避免重复,因为我已经有了我想忽略的注解的字段