Java Jackson JSON:动态更改视图
好时间 假设有这样一个类:Java Jackson JSON:动态更改视图,java,json,jackson,javassist,Java,Json,Jackson,Javassist,好时间 假设有这样一个类: public class Individual { @JsonProperty("passport") private Passport passport; // getters ans setters } 有两个用例。首先,当收入/支出json必须为短格式时: { individual:{ passport:'123456789' <-- this is the indentifier } } 为了处理这种
public class Individual {
@JsonProperty("passport")
private Passport passport;
// getters ans setters
}
有两个用例。首先,当收入/支出json必须为短格式时:
{
individual:{
passport:'123456789' <-- this is the indentifier
}
}
为了处理这种情况,可以创建两个类,例如,IndividualSh和IndividualExt,并使用注释@JsonSerializer
和@JsonSerializer
自定义输入/输出。我想尝试其他方法来保留唯一的单个类,因为它有很多字段,其中一半需要定制。第一个想法是编写几个序列化程序/反序列化程序和一个工厂,使用javassist库等工具,用所需的序列化程序/反序列化程序注释标记问题字段,但这似乎是一种开销
jlabedo有一个很好的例子,但我不知道如何在我的情况下使用它
请,建议,如何正确地做这件事。提前谢谢。您找到解决方案了吗?你被困在哪一部分?你是否被困在两种不同的方式序列化护照?您是否一直在想如何将复杂的Passport对象序列化为简单的JSON字符串?@Programmer Bruce,我一直在用多种不同的方式序列化嵌套对象。当然,我可以生成父对象的多个克隆并对其进行不同的注释,但我不喜欢这种方式并尝试编写自定义机制。当然,我可以生成父对象的多个克隆并对其进行不同的注释,但我不喜欢这种方式并尝试编写自定义机制。这就是我现在使用javassist的原因,但这似乎是一个巨大的开销。。。
{
individual:{
passport:{
series:'1234',
number:'1234'
}
}
}