使用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方法,這時候輸出的就是一個nulljson