gpt4 book ai didi

java - Gson序列化取决于字段值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:02 26 4
gpt4 key购买 nike

我有一个类似于以下内容的 POJO:

public class MyGsonPojo {

@Expose
@SerializedName("value1")
private String valueOne;

@Expose
@SerializedName("value2")
private boolean valueTwo;

@Expose
@SerializedName("value3")
private int valueThree;

// Getters and other stuff here
}

问题是这个对象必须序列化成json body才能调用到服务器。某些字段对于请求是可选的,如果我什至使用默认值和空值发送它,API 的响应会有所不同(不幸的是,更改 api 不是一个选项)。

所以基本上我需要将其中任何一个设置为默认值的字段从序列化中排除。例如,如果字段 valueOnenull,则生成的 json 应为:

{
"value2" : true,
"value3" : 2
}

知道如何轻松完成这项工作吗?我不想手动构建 json 主体。

任何帮助都会很棒。谢谢你的建议。

最佳答案

要遵循的步骤:

  • 将 JSON 字符串转换为 Map<String,Object>使用 Gson#fromJson()
  • 迭代 map 并从 map 中删除 null 的条目
  • 使用 Gson#toJson() 从最终 map 返回 JSON 字符串.

我已经在此处发布了相同上下文中的示例代码:

关于java - Gson序列化取决于字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com