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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- java json字符串轉(zhuǎn)JSONObject和JSONArray以及取值的實例
- java使用JSONObject實例
- JAVA中JSONObject對象和Map對象之間的相互轉(zhuǎn)換
- Java 如何遍歷JsonObject對象
- java的JsonObject對象提取值方法
- Java中如何將String轉(zhuǎn)JSONObject
- 詳解Java中String JSONObject JSONArray List<實體類>轉(zhuǎn)換
- java中如何判斷JSONObject是否存在某個Key
- 淺析Java中JSONObject和JSONArray使用
- Java使用JSONObject需要的6個jar包下載地址
- Java中JSONObject與JSONArray的使用區(qū)別詳解
- java 各個JSONObject的區(qū)別小結(jié)
相關(guān)文章
java selenium XPath 定位實現(xiàn)方法
本文主要介紹java selenium XPath,這里整理了XPath的資料,并附實現(xiàn)方法,有需要的小伙伴可以參考下2016-08-08
maven中no main manifest attribute的問題解決
本文主要介紹了maven中no main manifest attribute的問題解決,這個錯誤通常意味著Spring Boot應(yīng)用在啟動時遇到了問題,下面就來具體介紹一下,感興趣的可以了解一下2024-08-08
java隊列實現(xiàn)方法(順序隊列,鏈?zhǔn)疥犃?循環(huán)隊列)
下面小編就為大家分享一篇java隊列實現(xiàn)方法(順序隊列,鏈?zhǔn)疥犃?循環(huán)隊列),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Idea創(chuàng)建springboot不能選擇java8的解決
在IDEA 2023版本創(chuàng)建Spring Boot項目時,發(fā)現(xiàn)沒有Java 8選項,只有Java 17和Java 20,解決方法包括:通過修改服務(wù)器URL(推薦)或直接在創(chuàng)建后修改pom.xml文件中的Spring Boot和Java版本2025-01-01
springboot如何連接兩個數(shù)據(jù)庫(多個)
這篇文章主要介紹了springboot如何連接兩個數(shù)據(jù)庫(多個),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
解決idea創(chuàng)建版本時只有Java21和Java17選項
你是否在使用IntelliJ?IDEA創(chuàng)建新項目時遇到了只有Java?21和Java?17的選項?別擔(dān)心,我們的指南將為你提供解決方案,通過簡單的步驟,你將能夠選擇你需要的任何Java版本,繼續(xù)閱讀,讓我們開始吧!2024-03-03

