假设我有这样的json,我想将其反序列化为一个名为SubscriberProfile的对象。
{ "field1": "value1", "field2": "value2", "field3": "value3" }
当我使用以下代码时,它可以正常工作,
objectMapper.readValue(json,SubscriberProfile.class);
但如果json中缺少字段2,我希望objectmapper抛出和异常(可能缺少字段1和字段2)。
所以这样的json应该抛出一个异常
{ "field1": "value1", "field3": "value3" }
我曾尝试使用@JsonProperty(required=true)
注释,但仅在序列化它时有效。
你知道我该怎么解决这个问题吗?
提前感谢
您需要删除bean类的默认构造函数。这就是允许Jackson创建一个没有必填字段的bean的原因。例如(从这里修改):
public class NonDefaultBean {
private final String myRequired;
private String myNotRequired;
@JsonCreator
public NonDefaultBean(@JsonProperty("myRequired") String myRequired) {
this.myRequired = myRequired;
}
public void setMyNotRequired(String myNotRequired) {
this.myNotRequired = myNotRequired;
}
}
问题内容: 从文档中: read_only将此设置为True以确保序列化表示形式时使用该字段,而在反序列化期间更新实例时不使用该字段。 默认为False 必需通常,如果反序列化过程中未提供字段,则会引发错误。如果反序列化过程中不需要此字段,则设置为false。 默认为True。 因此,我有一个模型,该模型的字段不可为空,但我希望在pre_save方法中填充该字段,因此我已将该字段设置为序列化器,但
使用Jackson将JSON响应反序列化为DTO。 使用Gson或Jackson反序列化JSON时忽略空字段 他们仍然从那个不规则的JSON对象创建一个对象。 这意味着我需要遍历这个列表,并通过实现一个清理方法删除所有不具有属性“value”的对象。 我的带有Jackson注释的DTO: 给定JSON响应的结果是初始化了3个DTOs,而不是4个。
问题内容: 的功能需要Class。但是,如果我内部传递的类将某些接口作为数据成员,该如何使用它。 尽管我可以理解此异常的原因,因为杰克逊没有获得所传递类的内部接口的具体类,但我的问题是如何解决它?那我该如何反序列化呢?我要反序列化的类是: 这是一个接口,所以这给了我以下错误:- 问题答案: 杰克逊显然不能构造对象,因为它是一个接口。您将需要在json和ObjectMapper中具有其他信息,以告诉
我想知道,是否有某种方法来指示对象映射器(或注入一些东西到它)以不同的方式处理这样的字段?
我使用的是Spring Kafka 1.1.2-Spring Boot 1.5.0 RC版本,并且配置了一个自定义值serialiser/Deserialiser类,扩展/。这些类确实使用Jackson ObjectMapper,它可以通过构造函数提供。 是否可以从Spring上下文中注入ObjectMapper?我已经配置了一个ObjectMapper,我希望在序列化/反序列化程序中重用它。
问题内容: 我有一个逐步填写的模型,这意味着我正在制作一个表单向导。 因此,此模型中的大多数字段都是必需的,但必须避免在提交部分数据时引发非空错误。 我正在使用Angular.js和django-rest-framework,我需要告诉api应该是x和y字段,如果它们为空,则需要返回验证错误。 问题答案: 您需要专门覆盖该字段并添加自己的验证器。您可以在此处详细了解http://www.djang