java 將jsonarray 轉(zhuǎn)化為對(duì)應(yīng)鍵值的jsonobject方法
有時(shí)候我們?cè)俨僮鲾?shù)據(jù)的時(shí)候,很多數(shù)據(jù)是jsonarry 格式的
如:
[{"name":"測(cè)試數(shù)據(jù)","id":1},{"name":"測(cè)試數(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;
}
這個(gè)方法就可以簡單的實(shí)現(xiàn),但是可能不是最好的實(shí)現(xiàn)方法。歡迎對(duì)其提出寶貴的建議。
這里列出各個(gè)案例
案例1:
原數(shù)據(jù):
[{"name":"測(cè)試數(shù)據(jù)","id":1},{"name":"測(cè)試數(shù)據(jù)2","id":2}]
調(diào)用方法:
toJSONObject(jsonArray, "id:name")
結(jié)果:
{"1":"測(cè)試數(shù)據(jù)","2":"測(cè)試數(shù)據(jù)2"}
案例2:(這僅是我們自己業(yè)務(wù)需要添加上的)
原數(shù)據(jù):
[{"name":"測(cè)試數(shù)據(jù)","id":1},{"name":"測(cè)試數(shù)據(jù)2","id":2}]
調(diào)用方法:
toJSONObject(jsonArray, "id_test:name")
結(jié)果:
{"1_test":"測(cè)試數(shù)據(jù)","2_test":"測(cè)試數(shù)據(jù)2"}
案例三:
原數(shù)據(jù):
[{"no":100,"name":"測(cè)試數(shù)據(jù)","id":1,"desc":"測(cè)試描述"},{"no":101,"name":"測(cè)試數(shù)據(jù)2","id":2,"desc":"測(cè)試描述2"}]
調(diào)用方法:
toJSONObject(jsonArray, "id:name,no:desc")
結(jié)果:
{"1":"測(cè)試數(shù)據(jù)","100":"測(cè)試描述","2":"測(cè)試數(shù)據(jù)2","101":"測(cè)試描述2"}
以上這篇java 將jsonarray 轉(zhuǎn)化為對(duì)應(yīng)鍵值的jsonobject方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實(shí)例
- java使用JSONObject實(shí)例
- JAVA中JSONObject對(duì)象和Map對(duì)象之間的相互轉(zhuǎn)換
- Java 如何遍歷JsonObject對(duì)象
- java的JsonObject對(duì)象提取值方法
- Java中如何將String轉(zhuǎn)JSONObject
- 詳解Java中String JSONObject JSONArray List<實(shí)體類>轉(zhuǎn)換
- java中如何判斷JSONObject是否存在某個(gè)Key
- 淺析Java中JSONObject和JSONArray使用
- Java使用JSONObject需要的6個(gè)jar包下載地址
- Java中JSONObject與JSONArray的使用區(qū)別詳解
- java 各個(gè)JSONObject的區(qū)別小結(jié)
相關(guān)文章
java selenium XPath 定位實(shí)現(xiàn)方法
本文主要介紹java selenium XPath,這里整理了XPath的資料,并附實(shí)現(xiàn)方法,有需要的小伙伴可以參考下2016-08-08
Java AtomicInteger類使用方法實(shí)例講解
這篇文章主要介紹了Java AtomicInteger類使用方法實(shí)例講解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
maven中no main manifest attribute的問題解決
本文主要介紹了maven中no main manifest attribute的問題解決,這個(gè)錯(cuò)誤通常意味著Spring Boot應(yīng)用在啟動(dòng)時(shí)遇到了問題,下面就來具體介紹一下,感興趣的可以了解一下2024-08-08
java隊(duì)列實(shí)現(xiàn)方法(順序隊(duì)列,鏈?zhǔn)疥?duì)列,循環(huán)隊(duì)列)
下面小編就為大家分享一篇java隊(duì)列實(shí)現(xiàn)方法(順序隊(duì)列,鏈?zhǔn)疥?duì)列,循環(huán)隊(duì)列),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Idea創(chuàng)建springboot不能選擇java8的解決
在IDEA 2023版本創(chuàng)建Spring Boot項(xiàng)目時(shí),發(fā)現(xiàn)沒有Java 8選項(xiàng),只有Java 17和Java 20,解決方法包括:通過修改服務(wù)器URL(推薦)或直接在創(chuàng)建后修改pom.xml文件中的Spring Boot和Java版本2025-01-01
springboot如何連接兩個(gè)數(shù)據(jù)庫(多個(gè))
這篇文章主要介紹了springboot如何連接兩個(gè)數(shù)據(jù)庫(多個(gè)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
解決idea創(chuàng)建版本時(shí)只有Java21和Java17選項(xiàng)
你是否在使用IntelliJ?IDEA創(chuàng)建新項(xiàng)目時(shí)遇到了只有Java?21和Java?17的選項(xiàng)?別擔(dān)心,我們的指南將為你提供解決方案,通過簡單的步驟,你將能夠選擇你需要的任何Java版本,繼續(xù)閱讀,讓我們開始吧!2024-03-03

