List集合轉JSONObject


寫代碼喜歡用Map拼接返回去給前端,這樣得到的也是一個標准的JSON,今天先不說Map的優缺點,我們就來說說JSONObject的使用,我用的是阿里的fastjson,先上代碼,當我們需要嵌套代碼的時候,看需求:

 

 

由於sessionData后面是{},所以后面的對象必須是一個JSONObject,如果是sessionData后面是[]就可以使用JSONArray。一般sessionDataExpires,sessionDataKey,sessionDataValue字段都是從緩存或數據庫中查出來的,我們查出來的數據都習慣用List<T>去接收,那么問題就來了,List對象怎么轉成JSONObject呢?由於我翻了百度好幾頁都沒有我想要的答案,所以才有了這篇博客。

要知道List對象怎么轉成JSONObject,我們直接來看源碼即可,在idea中把所有JSONObject的方法都.出來:

 

在所有方法中,我們很容易看到哪些方法是返回了一個JSONObject的,而這個方法正是我們需要的,我們先看到parseObject這個方法,他返回的就是一個JSONObject

 

 

找到了parseObject方法,但是問題又來了,我們的參數是List,但是parseObject方法接收的參數是一個String類型(這個Stirng是JSON格式的String,不能任意寫)。那我們就繼續點(.)方法,再找我們需要的方法:

 

 

這里我們可以看到toJSONString方法,傳入要給Objec對象,就能得到一個String類型的結果,由於一切對象,不管是List ,Map還是其他對象,都屬於Object對象,所以我們就可以使用toJSONString這個方法來滿足我們的要求,最后看一下代碼:

1         List list = new ArrayList(16);
2         JSONObject result = JSONObject.parseObject(JSONObject.toJSONString(list));

這里我們得到的result就是一個JSONObject格式的數據了,最后在通過一個JSONObject來拼接,就能得到我們的最終效果了,看代碼:

1         List list = new ArrayList(16);
2         JSONObject result = JSONObject.parseObject(JSONObject.toJSONString(list));
3         JSONObject data = new JSONObject();
4         data.put("allMenuList",result);

 

寫到這里,我只能說真香!順帶說一句,這里主要是理解怎么通過idea把方法都列出來,並找到自己想要的方法,這就是別人不用看源碼就能很快上手一門技術的原因之一,只要看懂對象里面有什么方法,哪些是你需要用到的方法,你就離大神又進一步了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM