脚本宝典收集整理的这篇文章主要介绍了将多个JSON字段映射到单个Java字段,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
简介
本文中,教大家如何使用Jackson和Gson将不同的JSON字段映射到单个Java字段中。
@H_126_5@Maven依赖 为了使用Jackson和Gson库,我们需要在POM中添加以下依赖项:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> <scope>test</scope> </dependency> <dependency> <groupId>com.fasterXMl.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> <scope>test</scope> </dependency>
示例JSON
假如,我们希望将不同位置的天气细节输入到我们的Java类中。我们发现了一些将天气数据发布为JSON文档的网站。但是,它们的格式并未是一致的
{ "location": "广州", "temp": 15, "weather": "多云" }
{ "place": "深圳", "temperature": 35, "outlook": "晴天" }
我们希望将这两种格式反序列化为同一个Java类,名为 Weather:
使用Jackson
为实现这一目标,我们将使用Jackson的@JsonProperty和@JsonAlias注释。这两个注解将帮助我们把JSON属性映射到同一Java字段。
首先,我们将使用@JsonProperty注释,以便让Jackson知道要映射的JSON字段的名称。在值@JsonPRoperty注解同时用于反序列化和序列化。
然后我们可以使用@JsonAlias注释。因此,Jackson将知道JSON文档中映射到Java字段的其他字段的名称。在用了@JsonAlias注释的属性用于反序列化。
@JsonProperty("location") @JsonAlias("place") private String location; @JsonProperty("temp") @JsonAlias("temperature") private int temp; @JsonProperty("outlook") @JsonAlias("weather") private String outlook; Getter、Setter忽略
现在我们已经添加了注释,让我们使用Jackson的ObjectMapper方法创建Weather对象。
@Test public void test() throws Exception { ObjectMapper mapper = new ObjectMapper(); Weather weather = mapper.readValue("{n" + " "location"": ""广州""
脚本宝典总结
以上是脚本宝典为你收集整理的将多个JSON字段映射到单个Java字段全部内容,希望文章能够帮你解决将多个JSON字段映射到单个Java字段所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。