我正在使用相当多的不可变集合,我很好奇如何使用Gson对它们进行反序列化.由于没有人回答我自己找到了解决方案,我正在简化问题并提出自己的答案.
我有两个问题:
Deserializer
为所有人写一个单一的工作ImmutableList<XXX>
?ImmutableList<XXX>
?我正在尝试为我正在构建的Java(JAX-RS)Web服务实现JSON Merge Patch.
要点是通过将JSON文档发送到仅包含应更改的字段的服务器来完成记录的部分更新.
鉴于此记录
{
"a": "b",
"c": {
"d": "e",
"f": "g"
}
}
Run Code Online (Sandbox Code Playgroud)
,以下JSON更新文档
{
"a":"z",
"c": {
"f": null
}
}
Run Code Online (Sandbox Code Playgroud)
应该为里面设置一个新值"a"
并删除."f"
"c"
后者是问题所在.我不知道如何区分f缺失的输入和f为null的输入.据我所知,两者都将null
在目标Java对象中反序列化.
做什么?
我面临以下问题:我有一个类作为数据成员java.util.Optional对象,我需要将变换放入json.代码看起来像这样的通用方式:
public class MyClass{
public java.util.Optional<MyCustomObject> object;
public Myclass(java.util.Optional<MyCustomObject> object){
this.object = object;
}
public java.util.Optional<MyCustomObject> getObject(){
return this.object;
}
public void setObject(java.util.Optional<MyCustomObject> object){
return this.object = object;
}
}
Run Code Online (Sandbox Code Playgroud)
当我把它变成一个json我得到这样的东西:
Optional[
object
]
Run Code Online (Sandbox Code Playgroud)
我想摆脱json中的Optional部分.我能这样做吗?