我正在微服务中做一些更改,它有一个像以下这样的对象:
@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
,所以我创建了ratePPR
变量,以便在需要时使用。
当我进行测试时,会出现以下错误:
属性“rate”的getter定义冲突:com上的UsageRate#getRate(0个参数)与UsageRate#getrateprp(0个参数)。fasterxml。杰克逊。数据绑定。JsonMappingException。来自com上的(JsonMappingException.java:295)。fasterxml。杰克逊。数据绑定。序列化提供者。com上的reportMappingProblem(SerializerProvider.java:1309)。fasterxml。杰克逊。数据绑定。序列化提供者_createAndCacheUntypedSerializer(SerializerProvider
我能做些什么来创建新的变量ratePPR
与值从率JSON值。另一件重要的事情是,DB中的属性可以是小数,所以,我需要首先保存ratePPR
中的值,然后我需要保存ratePPR
变量中的整数值。
这个问题是由于您的classrate
和ratePPR
字段在反序列化过程或序列化过程中匹配相同的json rate属性,因此您必须更改其中一个字段的名称。根据用户Lino在下面的评论,解决问题的一种方法是定义一个JsonCreator
带注释的构造函数,该构造函数带有一个用@JsonProperty(“rate”)
注释的浮点参数,并在内部定义两个字段:
@ToString
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UsageRate implements Serializable {
@JsonCreator
public UsageRate(@JsonProperty("rate") float rate) {
this.rateIntegerPart = (int) rate;
this.ratePPR = rate;
}
@JsonIgnore
private int rateIntegerPart;
@JsonProperty("rate")
private Float ratePPR;
}
JsonIgnore
注释将rateIntegerPart
从序列化中排除:
//json = {"rate":10.0}
UsageRate rate = mapper.readValue(json, UsageRate.class);
System.out.println(rate); //it prints UsageRate(rateIntegerPart=10, ratePPR=10.0)
System.out.println(mapper.writeValueAsString(rate)); // it prints {"rate":10.0}
问题内容: 我正在使用ObjectMapper(https://github.com/Hearst- DD/ObjectMapper )将JSON映射到Swift对象。 说我有这个JSON结构: 我有以下Swift对象: 如何使用JSON对象中的键区分映射和映射?非常感谢! 问题答案: 细节 Xcode 10.2.1(10E1001),Swift 5 json档案 ObjectMapper示例 检
我将json传递给ObjectMapper。JSON字符串如下所示: 我的类如下所示: 这种行为是意料之中的吗?如果是,有什么解决办法? 更新:添加了类描述。
我会从我想达到的目标开始 意图 该软件在for循环中解析XML数据。处理数据的 for 循环将持续到 50(因为我得到了 50 个不同的结果)。我最初所做的是,-方法解析整个XML数据并将其保存到TextViews中并显示它。但现在我想添加一个启动画面,只要数据加载就会显示。 XML文件像任何其他普通XML文件一样构建,因此当我通过for循环时,键总是相同的,但值不同。 方法 我已经做的是创建一个
编辑:最后一个问题,如何通过值而不是引用来存储它?
person.hbm.xml: employee.hbm.xml 如何从表的和中提取表的映射? 注意:表的是主键
但是,这并不适用于String类。请参见下面的代码: 这是因为字符串类和自声明类之间的差异吗?谢谢你的帮助!