@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 个选择:

  1. 使用自定义解串器进行响应。在这种情况下,您可以以任何方式填充任何目标 DTO。在这里您可以找到自定义示例 deserializer
  2. 为您的 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());
        }

    }