当前位置: 首页 > 面试题库 >

gson:将null视为空String

薛承志
2023-03-14
问题内容

我使用google-gson将Java映射序列化为JSON字符串。它提供了一个生成器来处理null值:

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

问题在于结果是字符串null,如:

gson.toJson(categoriesMap));
{"111111111":null}

所需的结果是:

{"111111111":""}

我可以为null和进行字符串替换"",但这很难看并且容易出错。是否有本地gson支持添加自定义String而不是null


问题答案:

如果这是您的应用程序类型,则可以注册类型适配器。但是Gson不允许您更改字符串或原始类型的序列化形式。

最好的选择是更改Java对象。或放宽对null的限制。



 类似资料:
  • 我使用gson序列化java对象到json。 这个生成器处理好的空值。但与此同时,我希望它处理空字符串也为空。 这怎么能做到呢?

  • 我正在从Reddit API检索评论。该模型是线程化的,这样每个评论都可以在内部有一个评论列表,名为回复。下面是一个JSON响应的示例: 这是我如何用POJO建模的。上面的回复将被视为评论列表。 请注意底层CommentData POJO如何引用另一个名为“回复”的CommentList。 这个模型一直工作到GSON到达最后一个没有回复的子CommentData。API提供的不是空字符串,而是空字

  • 问题内容: 我知道它 确实 将’|’视为,但这并不能告诉我 为什么 会这样。据我了解的SQL规范,“ |”与-是一个有效的数据,而另一个则表明缺少相同的信息。 随意推测,但请说明是否是这种情况。如果有Oracle的任何人可以对此发表评论,那就太好了! 问题答案: 我相信答案是甲骨文非常老。 早在SQL标准出现以前,Oracle就做出了以下设计决定:/列中的空字符串是并且只有一种NULL感觉(有一些

  • 首先,我想说这是一个大学项目。 我有三节课<代码>订单抽象类和从订单继承的和类。 我使用Gson序列化/反序列化子类,但我遇到了一点问题。订单类有一个字段,gson使用该字段来确定订单类型,DineIn或Delivery。 序列化工作得很好。问题是,每当我尝试反序列化时,类型字段值都不会读取,并且总是设置为null,即使它存在于JSON文件中。当有很多字段时,就会发生这种情况,因为当我尝试在较小的

  • 问题内容: 我有一个带有字符串列的csv文件,我想用熊猫阅读它。在此文件中,字符串作为实际值出现,不应视为缺失值。 例: 这给出以下输出: 我该怎么做才能将值按原样(而不是NaN)输入到DataFrame中?可以假定该文件不包含任何实际缺少的值。 问题答案: 您可以为列指定一个参数。 这将绕过熊猫的自动解析。 另一个选项是设置: 这适用于整个DataFrame,因此请谨慎使用。如果您要通过外科手术

  • 问题内容: 我有需要将Java对象转换为json的要求。 我为此使用Gson,但我需要转换器仅序列化非null或非空值。 例如: 现在我的Gson实例将此对象转换为json看起来像 在上面的打印中,结果是 在这里我只是希望结果是 由于test2为空,otherObject为空,我不希望它们被序列化为json数据。 顺便说一句,我使用的是Groovy / Grails,因此,如果有任何对此的插件会很