【发布时间】:2017-09-01 12:04:23
【问题描述】:
我知道如何在 jackson API 中使用@JsonProperty,但下面的情况不同。
我已经低于 json sn-p。
{"results":[{"uniqueCount":395}
所以,要使用jackson API 解析上面的 json,我在 java pojo 类下面写了。
package com.jl.models;
import lombok.Data;
@Data
public class Results
{
private int uniqueCount;
}
后来,我要解析下面类似的json sn-p。
{"results":[{"count":60}
现在,这里的问题是我无法用Results 类解析这个json,因为它需要一个字符串uniqueCount。
我可以轻松地创建另一个具有 count 成员变量的 java pojo 类,但我必须创建具有 Results 类实例的所有父 java 类。
那么,有什么方法可以自定义具有lombok 行为的Results 类来解析两个json 而不会相互影响?
提前感谢您的帮助。
【问题讨论】:
-
你可以去掉
Results而只使用List<Integer>,那么只有{"results":[395]}就够了不是吗? -
好的.. 感谢您的建议。在前端大量使用
results对象来解析 json。现在,我必须在所有位置重写。有没有办法在生成 json 时附加结果以避免在前端进行更改? -
您可以拥有另一个带有
count字段的Results2类,并在反序列化时使用这些类中的任何一个,如果您获得第二种类型,则映射到原始Results。尽管我希望您使用我最初的建议,但似乎uniqueCount字段不会给您的结构添加任何东西,但会带来麻烦。或者这个 -> stackoverflow.com/a/19566131/3641067 (看起来很可怕 imo) -
是的,正如我之前所说,创建一个新类很容易,但我必须重写所有具有
Results类实例的父类,我不想这样做仅仅因为 1 个字段就会导致代码重复。