java 將jsonarray 轉(zhuǎn)化為對應(yīng)鍵值的jsonobject方法
有時候我們再操作數(shù)據(jù)的時候,很多數(shù)據(jù)是jsonarry 格式的
如:
[{"name":"測試數(shù)據(jù)","id":1},{"name":"測試數(shù)據(jù)2","id":2}]
這樣的格式很類型表格數(shù)據(jù)類型。但是我們要取id 為1的name 這樣我們就要先變量以便了。如果需要多次操作這樣的類型,顯得很麻煩。
這里的數(shù)據(jù)我們可以看出id 是唯一的。那么我們可以想辦法將其轉(zhuǎn)為jsonobject 這樣我們就很方便 根據(jù)指定id 獲取 name 了。
public static JSONObject toJSONObject(JSONArray jsonArray, String key) { JSONObject jsonObject = new JSONObject(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject temp = jsonArray.getJSONObject(i); String[] keyValues = StringUtil.StringToArray(key); if (keyValues != null) { for (String item : keyValues) { String[] k = item.split(":"); String[] keys = k[0].split("_"); String keyName = k[0]; if (keys.length == 2) { keyName = keys[0]; } String jsonKeyName = temp.getString(keyName); if (keys.length == 2) { jsonKeyName += "_" + keys[1]; } jsonObject.put(jsonKeyName, temp.getString(k[1])); } } } return jsonObject; }
這個方法就可以簡單的實現(xiàn),但是可能不是最好的實現(xiàn)方法。歡迎對其提出寶貴的建議。
這里列出各個案例
案例1:
原數(shù)據(jù): [{"name":"測試數(shù)據(jù)","id":1},{"name":"測試數(shù)據(jù)2","id":2}] 調(diào)用方法: toJSONObject(jsonArray, "id:name") 結(jié)果: {"1":"測試數(shù)據(jù)","2":"測試數(shù)據(jù)2"}
案例2:(這僅是我們自己業(yè)務(wù)需要添加上的)
原數(shù)據(jù): [{"name":"測試數(shù)據(jù)","id":1},{"name":"測試數(shù)據(jù)2","id":2}] 調(diào)用方法: toJSONObject(jsonArray, "id_test:name") 結(jié)果: {"1_test":"測試數(shù)據(jù)","2_test":"測試數(shù)據(jù)2"}
案例三:
原數(shù)據(jù): [{"no":100,"name":"測試數(shù)據(jù)","id":1,"desc":"測試描述"},{"no":101,"name":"測試數(shù)據(jù)2","id":2,"desc":"測試描述2"}] 調(diào)用方法: toJSONObject(jsonArray, "id:name,no:desc") 結(jié)果: {"1":"測試數(shù)據(jù)","100":"測試描述","2":"測試數(shù)據(jù)2","101":"測試描述2"}
以上這篇java 將jsonarray 轉(zhuǎn)化為對應(yīng)鍵值的jsonobject方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談java中類名.class, class.forName(), getClass()的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05java 數(shù)據(jù)庫連接與增刪改查操作實例詳解
這篇文章主要介紹了java 數(shù)據(jù)庫連接與增刪改查操作,結(jié)合實例形式詳細分析了java使用jdbc進行數(shù)據(jù)庫連接及增刪改查等相關(guān)操作實現(xiàn)技巧與注意事項,需要的朋友可以參考下2019-11-11SpringBoot定時任務(wù)實現(xiàn)數(shù)據(jù)同步的方法
業(yè)務(wù)需求是,通過中臺調(diào)用api接口獲得,設(shè)備數(shù)據(jù),要求現(xiàn)實設(shè)備數(shù)據(jù)的同步,這篇文章主要介紹了SpringBoot定時任務(wù)實現(xiàn)數(shù)據(jù)同步的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08Java 實戰(zhàn)范例之員工管理系統(tǒng)的實現(xiàn)
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實現(xiàn)一個前后端分離的員工管理系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11java數(shù)據(jù)結(jié)構(gòu)和算法中數(shù)組的簡單入門
在本文里小編給大家整理了關(guān)于java數(shù)據(jù)結(jié)構(gòu)和算法中數(shù)組的簡單入門知識點整理,需要的朋友們學(xué)習(xí)下。2019-06-06