相关疑难解决方法(0)

使用Gson反序列化ImmutableList

我正在使用相当多的不可变集合,我很好奇如何使用Gson对它们进行反序列化.由于没有人回答我自己找到了解决方案,我正在简化问题并提出自己的答案.

我有两个问题:

  • 如何Deserializer为所有人写一个单一的工作ImmutableList<XXX>
  • 如何为所有人注册ImmutableList<XXX>

java immutability adapter gson

11
推荐指数
2
解决办法
5789
查看次数

Gson反序列化:如何区分缺少的字段和显式设置为null的字段?

我正在尝试为我正在构建的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 serialization json gson

6
推荐指数
1
解决办法
2109
查看次数

我可以只将java.util.Optional中的值序列化为json吗?

我面临以下问题:我有一个类作为数据成员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部分.我能这样做吗?

java serialization json java-8

1
推荐指数
1
解决办法
1187
查看次数

标签 统计

java ×3

gson ×2

json ×2

serialization ×2

adapter ×1

immutability ×1

java-8 ×1