【问题标题】:Gson ignoring map entries with value=nullGson 忽略值 = null 的地图条目
【发布时间】:2011-04-24 20:06:19
【问题描述】:
Gson gson = new Gson();

Map<String,Object> map = new HashMap<String, Object>();
map.put("a", 1);
map.put("b", null);

System.out.println(gson.toJson(map)); //prints {"a":1}

如何让它包含所有条目?

【问题讨论】:

    标签: java json gson


    【解决方案1】:

    Gson User Guide - Null Object Support:

    在 Gson 中实现的默认行为是忽略空对象字段。这允许更紧凑的输出格式;但是,客户端必须为这些字段定义默认值,因为 JSON 格式会转换回其 Java 格式。

    以下是配置 Gson 实例以输出 null 的方式:

    Gson gson = new GsonBuilder().serializeNulls().create();
    

    【讨论】:

    • 手册应该更加优化搜索。当我使用少量专长时,我不会阅读所有内容。这是谷歌上的第一个结果。修复了我的问题。
    • @MathijsSegers 一些很棒的库没有文档。在浏览他们的源代码时遇到了很多麻烦(这又是很多构建器模式等等)。
    • @MathijsSegers 这就是 SO 和 Google 的魅力所在。我可以谷歌“gson ignore null”并在 3 秒内找到这个答案,而不必在其中找到手册和答案。
    • 如何在类中只包含一个 NULL 字段而不是所有 NULL 字段?我可以在必填字段上方添加注释吗?
    • 这个解决方案看起来很合理,我确实希望它可以工作!但事实并非如此!有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多