@JsonPoperty 无法获取嵌套值
@JsonPoperty can not get nested value
我有:
{
"id": "2021-04-03T15-SV_Waldhof_Mannheim--Zwickau",
"something": {
"id": "12",
"value": 1.5
}
}
我想要获取值:1.15,并将其存储在我的变量中。
我如何使用@JsonPropety 做到这一点?
@JsonProperty("something[value}") //how to do it correctly?
private float value;
我如何解析 JSON:
restTemplate.exchange(MY_GET_REQUEST, HttpMethod.GET, entity, new ParameterizedTypeReference<List<MyEntity>>(){})
如果您知道相同的主题,我将不胜感激 - 只需发送 link
已更新
something.value 无效
同样的解包问题,如:
@JsonProperty("something")
public void setLng(Map<String, Float> coordinates) {
this.value= (Float.parseFloat(coordinates.get("value")));
}
也不行
您有 2 个选择:
- 使用自定义解串器进行响应。在这种情况下,您可以以任何方式填充任何目标 DTO。在这里您可以找到自定义示例 deserializer
- 为您的 DTO 使用与响应(带有子对象)相同的结构,并在根 DTO 中添加其他方法以访问此值。但在这种情况下,它可能会对序列化产生副作用(例如,根 DTO 中的附加字段)
更新
这样的配置对我有用
public static class Obj {
@JsonProperty("id")
String id;
Float value;
@JsonProperty("something")
public void value(Map<String, Object> obj) {
this.value = Float.parseFloat(obj.get("value").toString());
}
}
我有:
{
"id": "2021-04-03T15-SV_Waldhof_Mannheim--Zwickau",
"something": {
"id": "12",
"value": 1.5
}
}
我想要获取值:1.15,并将其存储在我的变量中。 我如何使用@JsonPropety 做到这一点?
@JsonProperty("something[value}") //how to do it correctly?
private float value;
我如何解析 JSON:
restTemplate.exchange(MY_GET_REQUEST, HttpMethod.GET, entity, new ParameterizedTypeReference<List<MyEntity>>(){})
如果您知道相同的主题,我将不胜感激 - 只需发送 link
已更新 something.value 无效
同样的解包问题,如:
@JsonProperty("something")
public void setLng(Map<String, Float> coordinates) {
this.value= (Float.parseFloat(coordinates.get("value")));
}
也不行
您有 2 个选择:
- 使用自定义解串器进行响应。在这种情况下,您可以以任何方式填充任何目标 DTO。在这里您可以找到自定义示例 deserializer
- 为您的 DTO 使用与响应(带有子对象)相同的结构,并在根 DTO 中添加其他方法以访问此值。但在这种情况下,它可能会对序列化产生副作用(例如,根 DTO 中的附加字段)
更新 这样的配置对我有用
public static class Obj {
@JsonProperty("id")
String id;
Float value;
@JsonProperty("something")
public void value(Map<String, Object> obj) {
this.value = Float.parseFloat(obj.get("value").toString());
}
}