使用net.sf.json.JSONObject的fromObject方法可以將對象和字符串進行雙向轉換,字符串需要滿足json格式,否則會拋出異常,但是當傳入的值是一個null的時候,這時候不會拋出異常,仍然會生成一個JSONObject對象(一開始以為這個對象是null,直接拿去和null最比較結果返回false),如果打印這個對象的話會返回null,但是這個對象本身不是null,查看源碼,原來fromObject方法會在轉換前做判斷

如果判斷傳入的值是null,則執行

進入到new JSONObject(true);中會看到JSONOject對象里面有一個nullObject屬性,如果傳入的值是null,則該屬性會被賦值為true,如果調用對象的toSTring方法,會先判斷這個屬性是否為true,如果是的話則返回一個JSONNull對象的toString方法,這時候輸出的就是一個null


