【发布时间】:2022-01-20 15:22:50
【问题描述】:
我正在对具有如下对象的微服务进行一些更改:
@ToString
@Getter
@Setter
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonDeserialize(builder = UsageRate.UsageRateBuilder.class)
public class UsageRate implements Serializable {
private int rate;
@JsonProperty("rate")
private Float ratePPR;
@JsonPOJOBuilder(withPrefix = "")
public static class UsageRateBuilder {
}
}
我正在从 Json 获取我将要使用的信息。该 Json 有一个名为 rate 的键,我想在两个不同的变量中使用该速率,一个 int rate 和一个 Float ratePPR。这里的问题是我知道我不能在同一个对象中拥有来自同一个 Json 的两个变量,但我有义务这样做,因为我无法触及变量 rate,所以我创建了 @987654324 @ 变量在我需要时使用。
我在测试时收到以下错误:
属性“rate”的 getter 定义冲突: UsageRate#getRate(0 参数) 与 UsageRate#getRatePPR(0 参数) 在 com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:295) 在 com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1309) 在 com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider
我可以做些什么来创建新变量ratePPR 使用来自速率 JSON 值的值。
另一件重要的事情是数据库中的属性可以是小数,因此,我需要首先将值保存在ratePPR 中,然后我需要将整数值保存在rate 变量中。
【问题讨论】:
-
使用自定义
@JsonCreator怎么样?这样您就可以在构造函数中正确地将rate字段映射到ratePPR -
你好@Lino 我正在尝试使用
@JsonCreator问题是我正在使用@Builder和@JsonPOJOBuilder来反序列化Json,现在当我获取信息时出现错误来自 Json。