我正在尝试使用JsonNullable
{"present":false}
我希望它打印出来,因为我用未定义的字段初始化了字段。
这是我的课
public class User {
@JsonProperty("userId")
private JsonNullable<String> userId = JsonNullable.undefined();
//set and get
//tostring
}
还有一个小的驱动程序,我实际上在JsonNullable字段中设置了一个值。
User user = new User();
user.setUserId(JsonNullable.of("12345"));
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new Jdk8Module());
String expectedData = objectMapper.writeValueAsString(user);
System.out.println(expectedData);
这张照片
{"userId":{"present":true}}
但我预料到
{"userId":"12345"}
换句话说,我期望包装在JsonNullable
中的值被序列化到JSON中。为什么JsonNullable
和Jackson会这样做?
在Spring Boot中添加以下配置:
@Configuration
public class JacksonConfiguration {
@Bean
public JsonNullableModule jsonNullableModule() {
return new JsonNullableModule();
}
}
按照wiki的指示,您需要注册相应的模块(除了您拥有的任何其他模块之外):
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.registerModule(new JsonNullableModule());
根据这里描述的内容,我应该使用JSR-310表示而不是数字表示来序列化对象。但是,我得到了数字表示。可能有什么问题? 我是这样配置我正在使用的映射器的: 这是我得到的反序列化示例 对于以下事例类:
我想将json反序列化到类Foo: IBar有两个实现,但是当反序列化时,我总是想使用第一个实现。(理想情况下,这将使问题变得更容易,因为不需要运行时类型检查) 我相信我可以编写自定义反序列化程序,但我觉得一定有更简单的方法。 我找到了这个注释,它在没有列表的情况下非常有效。
问题内容: 在Apache Jackson和Jackson一起使用Apache Jersey进行JSON序列化时(在服务器和客户端上),在反序列化通用List时遇到问题。 我正在生成的JSON如下,“数据”中的所有3个类都实现“ CheckStatusDetail”: 产生此JSON的对象如下所示,我在客户端使用相同的类: 自从我将此注释添加到我的CheckStatusDetail接口后,就应用了
添加到DTO对象后,我想向服务器发送一个列表 从…起 当向控制器发送对象时,它会抛出
我正在尝试在SpringBoot应用程序中编写Jackson反序列化器模块。主要原因是使用自定义Jackson反序列化程序对传入请求中的pin码进行加密。加密属性由spring组件 我试图从这个解决方案,但我的自定义反序列化程序仍然没有调用。而不是基于此,始终调用,并且不执行加密 提前谢谢 注释: 带有要加密字段的请求正文 杰克逊构型 模块: 最后反序列化器:
我的Spring Boot应用程序使用了一个用和注释的类: 现在我想使用一个(私有)REST接口来读取和更新这些配置属性,所以我创建了以下控制器。 不幸的是,这似乎不起作用,因为我在调用endpoint时遇到以下异常: 当出于测试目的删除注释和时,序列化工作正常。所以它似乎必须要做一些事情来处理类是bean?