JSON與null的解惑

2021-08-27 17:26:19 字數 641 閱讀 8368

從做程式到現在,用json也用了好些年了。突然發現json在put空值時有時會有key而有時又不會有。為了解除這個疑惑我做了以下測試。 我用的包是:json-lib-2.4-jdk15.jar

例一:

public static void main(string args)
可以看到,控制輸出:{}

由此可見,如果put乙個空指標(null)給json,json會自動遮蔽此key不會有任何處理。

我們再來看看另外乙個例子。

例二:

public static void main(string args)
控制台輸出:

在例二中,我們將string型別的字串value的值設定為「null」。此時json會帶有key及value存在。大家請注意看value為null。並不是「null」不帶引號。我猜測應該是json自動將字串「null」轉換為可識別的空值。如果我們將value的值設定為非「null」的任何字元,json都會帶有引號。

綜上所述:如果需要在value為空時不顯示key,則可以直接傳遞null。但是如果需要不管在value是否為空時都帶有key則需要手動將null轉換為「null」字串即可。

才疏學淺,有什麼不正之處。希望高手賜教!

處理json資料返回null

1.json只能utf 8編碼 json mb convert encoding json,utf8 gbk json iconv gbk utf 8 ignore json 2.元素最後不能有逗號 與php的array不同 3.元素不能使用單引號 json str replace json 4.元...

Fastjson生成json時Null屬性不顯示

1 2 3 4 5 6 7 8 9 map string object jsonmap new hashmap string object jsonmap.put a 1 jsonmap.put b jsonmap.put c null jsonmap.put d wuzhuti.cn string...

null 與 的區別

string str1 null str引用為空 string str2 str應用乙個空串 也就是null沒有分配空間,分配了空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null不是物件,是物件。所以比較的時候必須是 if str1 null 和if str2.equa...