我是Sping Boot 的新手,我正在尝试弄清楚如何解析json数据,我看到了很多关于如何将json字符串对象Map到带注解的Java类以及使用和对象Map器的教程,就像这样:
儿子:
{
"UUID": "xyz",
"name": "some name"
}
public class MyClass{
@JsonProperty
private UUID id;
@JsonProperty
private String name;
@JsonAnyGetter
public UUID getId() {
return this.id;
}
@JsonAnySetter
public void setId(UUID id) {
this.id = id;
}
@JsonAnyGetter
public String getName() {
return this.name;
}
@JsonAnySetter
public void setName(String name) {
this.name = name;
}
}
ObjectMapper objectMapper = new ObjectMapper();
MyClass customer = objectMapper.readValue(jsonString, MyClass.class);
问题是我从中获取json字符串的系统与我们使用的类命名约定不匹配(并且我无法更改任何一个),因此,与上面的示例json字符串不同,它可能如下所示:
{
"randomdstring-fieldId": "xyz",
"anotherrandomstring-name": "some name"
}
这个用例只有两个字段,但是我的用例有一个更大的有效负载。是否有办法将json对象中的字段名Map到Java类中的字段名,或者是否有办法将json字符串解析为键值对(这样我就可以手动将字段添加到Java对象中)?
2条答案
按热度按时间iszxjhcz1#
在Jacksonwith
@JsonProperty
中,您可以使用其注记参数value
自定义字段名称因此,您只需使用
@JsonProperty
注解来注解实体字段,并提供一个自定义JSON属性名,如下所示:aoyhnmkz2#
@JsonProperty将为您执行此操作: