自定义序列化和反序列化以创建JSON

时间:2017-06-21 20:51:57

标签: java json groovy

我有一个有2个值的类:val1和val2。我发送val1到register(create)API,val2由API本身自动填充。我不想在调用create API时发送val2,并且该API不是为处理不需要的值而设计的。

简而言之,我想在调用create API时忽略val2,但在调用get API时我想要它。

我现在拥有的代码创建了JSON,包括为val2分配null的值。这会导致API抛出异常。

有没有简单的方法(java / groovy)?

1 个答案:

答案 0 :(得分:0)

  

有没有简单的方法(java / groovy)?

不是100%确定我了解您的需求。我相信这取决于你使用的json de / serializer。例如,使用杰克逊我们做:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeName("account")
public class Account {

我相信这允许我们将具有大量额外json字段的对象加载到没有相应java字段的对象中。引用javadocs

  

定义在反序列化期间是否可以忽略任何无法识别的属性的属性。如果为true,则无法识别所有无法识别的属性(即没有可接受它们的setter或创建者),而不会出现警告(尽管仍将调用未知属性的处理程序,如果有的话),无异常。