当前位置: 首页 > 知识库问答 >
问题:

Jackson反序列化convertValue在空值时应失败

姜阳
2023-03-14

希,

我所拥有的:

公开课myPojo

@JsonProperty(required = true) private String name;
@JsonProperty(required = true) private String surname;
@JsonProperty(required = true) private String age;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

我想要的是,如果Map中的一个字段不满足POJO,则使从Map到POJO的转换失败(抛出异常)。

它似乎不能使用DeserializationFeature进行任何类型的配置。我试图调整所有与空字段有关的配置

objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, false)
objectMapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, true);
MyPojo myPojo = MAPPER.convertValue(action.getParams(), MyPojo.class);

共有1个答案

公羊光明
2023-03-14

Jackson不支持验证(这显然超出了范围),因此您需要在反序列化之后单独进行验证,例如使用Bean验证实现(如Hibernate Validator)。

 类似资料:
  • 我尝试使用以下代码反序列化API中接收的JSON对象: 我的类使用Lombok生成构造函数、getter和setter,如下所示: 这两个属性都应该是可选的,如果没有提供,则使用类定义中指定的默认值。但是,如果我现在尝试反序列化JSON 字段为。根据我的理解,以及我找到的所有示例代码,应该是一个空列表。 编辑:不是重复的,因为我使用的是没有选项的Lombok

  • 我将spring MVC用于服务。通过添加依赖项,我的rest控制器自动。 依赖关系 对象 问题 问题出现在中。例如,我想向添加。以下用户-JSON良好, 但是如果我添加一个带有子活动的activity,它就会崩溃! 的确,jackson这个json,我不明白为什么。我得到以下错误..知道吗? 这里的对象与所有字段,也许与我的错误有关?

  • 我有JSON反序列化和映射到枚举的问题。我从外部API获取JSON,类似于下面两个例子: 我想将空值映射到一些默认的枚举值。 模型对象 和枚举类 对于exists,值模型类包含正确的枚举,但如果我从API获取< code>null,它在模型中仍然是< code>null。 我试图创建一些由< code>@JsonCreator注释的方法,使用< code > @ JsonEnumDefaultVa

  • 我有一个JSON字符串,它将空列表标记为而不是。因此,例如,如果我有一个没有子对象的对象,我将收到这样的字符串: 我想将其反序列化为父类,将子类正确设置为子类的空列表。 对于上面的JSON字符串,我想要一个将其id设置为13的对象,并将子元素设置为新的ArrayList 我知道如何为整个类使用注释 然后呢 但是,我想解决从字符串正确实例化列表的一般问题: 我能得到这样的东西吗?

  • 我正在阅读Facebook的洞察,并试图让Jackson将JSON映射到Object。如果所有的数据都不是空的,我就会让它正常工作。但是我在尝试反序列化键值的空数组时遇到了问题。即使尝试了这篇文章:如何防止Map内部的null值和bean内部的null字段通过Jackson序列化,也没有解决问题:( 这是JSON: 我的代码段如下: 全堆栈跟踪:

  • 问题内容: 使用Jackson 2,我正在寻找一种 通用的 方式将对象序列化为单个值(然后序列化它们,然后再填充该单个字段),而不必重复创建JsonSerializer / JsonDeserializer来处理每种情况。@JsonIdentityInfo批注非常接近,但由于我知道,它将始终对完整的子对象进行序列化,因此略微遗漏了该标记。 这是我想做的一个例子。给定的类: 我希望Order可以序列