2015-01-13 121 views
0

我一直在使用Google的Gson API很长一段时间,并且喜欢它的简单性。将空对象Gson转换为Json

尽管如此,我发现(可能)在toJson方法的一个错误。

当我尝试将null对象转换为JSON,而不是例外情况,或者一个字符串null回报,我得到一个String与价值null

你认为这是一个错误?

+0

没有_null object_这样的东西。 'null'是[null type]的文字值(http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.7)。它只是一个参考值,而不是一个对象。 –

+0

非常感谢您纠正我的英语 – RedEagle

+0

如果它是有效的JSON,它怎么会是一个“bug”呢?请参阅json.org并查看JSON语法。 –

回答

0

null不产生NullPointerException转换时,因为它是文字,它是有效的GSON价值。

+0

我明白这一点。但是,如果我安装Gson类,如: Gson gson = new Gson() ...并且我正在序列化的对象具有空TYPE的全局变量,则这些变量不会被序列化。如果我实例化Gson类,如: Gson gson = new GsonBuilder()。serializeNulls()。create() ...具有空TYPE的全局变量,这些变量被序列化。 因此,尽管“空”是一个有效的JSON字符串,因为我实例化Gson像新的Gson()在我看来,我应该至少得到一个空字符串 – RedEagle

+0

它不会给予空字符串,因为它认为'空'作为文字。 –

+0

它是一个字面的事实意味着什么。 _literal_是一种语言概念。 –