2015-01-13 135 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_是一種語言概念。 –