栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:使用json -SpringBoot中的“​​ @class”将json反序列化为其余模板中的对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:使用json -SpringBoot中的“​​ @class”将json反序列化为其余模板中的对象

@JsonTypeInfo
通过遵循MixIn的用法,无论生成类的事实如何,都可以使用注释

“混合注释是”:一种将注释与类相关联的方法,而无需修改(目标)类本身。

也就是说,您可以:

定义将混合类(或接口)的注释与目标类(或接口)一起使用,以使其看起来像目标类具有混合类具有的所有注释(用于配置序列化/反序列化)

这样您就可以编写您的

AnimalMixIn
课程,例如

@JsonTypeInfo(      use = JsonTypeInfo.Id.NAME,      include = JsonTypeInfo.As.PROPERTY,      property = "_class")  @JsonSubTypes({      @Type(value = Cat.class, name = "com.example.Cat"),      @Type(value = Dog.class, name = "com.example.Dog") })  abstract class AnimalMixIn  {}

并配置您的解串器

    ObjectMapper mapper = new ObjectMapper();      mapper.getDeserializationConfig().addMixInAnnotations(      Animal.class, AnimalMixIn.class);

由于您使用的春天启动,您可以查看以下博客文章,看你如何自定义ObjectMapper使用混入,自杰克逊对象映射器,尤其要注意混入的方法

Jackson2ObjectMapperBuilder

应该通过转换器设置使用

ObjectMapper
内部自定义
RestTemplate
,例如

    RestTemplate restTemplate = new RestTemplate();    List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();    MappingJackson2HttpMessageConverter jsonMessageConverter = new MappingJackson2HttpMessageConverter();    jsonMessageConverter.setObjectMapper(objectMapper);    messageConverters.add(jsonMessageConverter);    restTemplate.setMessageConverters(messageConverters);    return restTemplate;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438980.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号