當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
net.sf.json.JSONArray之fromObject的坑
生活随笔
收集整理的這篇文章主要介紹了
net.sf.json.JSONArray之fromObject的坑
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前段時間掀起了風(fēng)風(fēng)火火的去fastjson, 其他Json序列化方法, 又"重見天日"; 本來推薦使用gson作為替代(某些場景下Jackson); 但這位同學(xué)使用的net.sf.json, 但缺乏認(rèn)知, 未經(jīng)測試就上線,導(dǎo)致了問題。
Case
當(dāng)JSONArray.fromObject(null)時, 結(jié)果也為null嗎?
Detect
首先我們給出結(jié)論是:
JSONArray jsonArray = JSONArray.fromObject(null); jsonArray結(jié)果是包含JSONNull的, 長度為1的JSONArray, JSONNull也并不是一個null object那么讓我們看看JSONArray.fromObject發(fā)生了什么
在工程當(dāng)前使用的版本中, 是這么實現(xiàn)的
最終在 net.sf.json.AbstractJSON#_processValue, 返回了JSONNull對象
protected Object _processValue(Object value, JsonConfig jsonConfig) {// 命中這步邏輯:if (JSONNull.getInstance().equals(null)) {return JSONNull.getInstance();}.... }那么為什么JSONNull.getInstance().equals(null)
這完全取決于equals方法的實現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的net.sf.json.JSONArray之fromObject的坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Solaris 下 Oracle imp
- 下一篇: JavaScript 判断浏览器类型