我一直在使用Google的Gson API很长一段时间,并且喜欢它的简单性。将空对象Gson转换为Json
尽管如此,我发现(可能)在toJson
方法的一个错误。
当我尝试将null
对象转换为JSON
,而不是例外情况,或者一个字符串null
回报,我得到一个String
与价值null
。
你认为这是一个错误?
我一直在使用Google的Gson API很长一段时间,并且喜欢它的简单性。将空对象Gson转换为Json
尽管如此,我发现(可能)在toJson
方法的一个错误。
当我尝试将null
对象转换为JSON
,而不是例外情况,或者一个字符串null
回报,我得到一个String
与价值null
。
你认为这是一个错误?
null
不产生NullPointerException
转换时,因为它是文字,它是有效的GSON价值。
我明白这一点。但是,如果我安装Gson类,如: Gson gson = new Gson() ...并且我正在序列化的对象具有空TYPE的全局变量,则这些变量不会被序列化。如果我实例化Gson类,如: Gson gson = new GsonBuilder()。serializeNulls()。create() ...具有空TYPE的全局变量,这些变量被序列化。 因此,尽管“空”是一个有效的JSON字符串,因为我实例化Gson像新的Gson()在我看来,我应该至少得到一个空字符串 – RedEagle
它不会给予空字符串,因为它认为'空'作为文字。 –
它是一个字面的事实意味着什么。 _literal_是一种语言概念。 –
没有_null object_这样的东西。 'null'是[null type]的文字值(http://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.7)。它只是一个参考值,而不是一个对象。 –
非常感谢您纠正我的英语 – RedEagle
如果它是有效的JSON,它怎么会是一个“bug”呢?请参阅json.org并查看JSON语法。 –