Java 将空对象Gson转换为Json
我已经使用谷歌的Gson API有一段时间了,我喜欢它的简单性 尽管如此,我(可能)在Java 将空对象Gson转换为Json,java,json,gson,Java,Json,Gson,我已经使用谷歌的Gson API有一段时间了,我喜欢它的简单性 尽管如此,我(可能)在toJson方法上发现了一个bug 当我尝试将null对象转换为JSON,而不是异常或null字符串返回时,我会得到一个值为null的String 你认为这是一个bug吗?< /P> < P>不,是一个< P> NUL> 在转换时不产生 Null PoExtExtExt/Cuth>,因为它是文字的,它是有效的GSON值。没有空对象这样的东西。code>null是的文本值。它只是一个参考值,不是一个对象。非常感
toJson
方法上发现了一个bug
当我尝试将null
对象转换为JSON
,而不是异常或null
字符串返回时,我会得到一个值为null
的String
你认为这是一个bug吗?< /P> < P>不,是一个
< P> <代码> NUL> <代码>在转换时不产生<代码> Null PoExtExtExt/Cuth>,因为它是文字的,它是有效的GSON值。没有空对象这样的东西。code>null是的文本值。它只是一个参考值,不是一个对象。非常感谢您纠正我的英语错误。如果它是有效的JSON,它怎么可能是一个“错误”。查看json.org&查看json语法。这取决于您对这些字段的注释方式。您要么得到一个null,要么得到一个“安全”的非null对象,该对象指示序列化/反序列化对象为null。看,这取决于你想要哪一个,并编写相应的代码来处理它。我理解这一点。但是,如果我像:Gson Gson=new Gson()…这样安装Gson类,并且我正在序列化的对象具有null类型的全局变量,那么这些变量不会被序列化。但如果我实例化Gson类,比如:Gson Gson=new GsonBuilder().serializeNulls().create()。。。如果全局变量的类型为null,则这些变量将被序列化。因此,尽管“null”是一个有效的JSON字符串,但由于我像new Gson()一样实例化了Gson,所以我认为我至少应该得到一个空字符串,它不会得到空字符串,因为它认为null
是文本。它是文本这一事实并不意味着什么。字面是一个语言概念。