最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java循環(huán)遍歷無規(guī)則json的方式:gson、fastjson、orgjson

 更新時間:2024年08月08日 09:17:53   作者:qq_41771339  
這篇文章主要介紹了java循環(huán)遍歷無規(guī)則json的方式:gson、fastjson、orgjson,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

引入依賴

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.83</version>
</dependency>
 
<dependency>
	<groupId>org.json</groupId>
	<artifactId>json</artifactId>
	<version>20200518</version>
</dependency>
 
<dependency>
	<groupId>com.google.code.gson</groupId>
	<artifactId>gson</artifactId>
	<version>2.8.6</version>
</dependency>

使用gson遍歷

private static testJson = "";
 
private static Map<String, Object> pathMap = new HashMap<>();
 
//通過gson遍歷所有參數(shù)
public static void getJsonMapByGson() {
	Gson gson = new Gson();
	JsonObject jsonObject = gson.fromJson(testJson, JsonObject.class);
	System.out.println(jsonObject);
	analysisJson("/", jsonObject);
	for (Map.Entry entry : pathMap.entrySet()) {
		System.out.println(entry);
	}
}
 
//遞歸解析Json、獲取所有鍵值對
public static void analysisJson(String pathPre, JsonObject jsonObject) {
	for (String key : jsonObject.keySet()) {
		JsonElement value = jsonObject.get(key);
		if (value.isJsonPrimitive()) {
			if (value.getAsJsonPrimitive().isString()) {		//此處只取了字符串
				pathMap.put(pathPre + key, value.getAsString());
			}
		} else if (value.isJsonObject()) {
			JsonObject objectValue = value.getAsJsonObject();
			analysisJson(pathPre + key, objectValue);
		} else if (value.isJsonArray()) {
			JsonArray jsonArray = value.getAsJsonArray();
			for (int i = 0; i < jsonArray.size(); i++) {
				JsonObject tempJson = new JsonObject();
				tempJson.add(i + "", jsonArray.get(i));
				analysisJson(pathPre + key, tempJson);
			}
		}
	}
}

使用fastjson遍歷

private static testJson = "";
 
private static Map<String, Object> pathMap = new HashMap<>();
 
//通過fastjson遍歷所有參數(shù)
public static void getJsonMapByFastjson() {
	JSONObject jsonObject = JSONObject.parseObject(testJson);
	System.out.println(jsonObject);
	analysisJson("/", jsonObject);
	for (Map.Entry entry : pathMap.entrySet()) {
		System.out.println(entry);
	}
}
 
//遞歸解析Json、獲取所有鍵值對
public static void analysisJson(String pathPre, JSONObject jsonObject) {
	Set<String> set = jsonObject.keySet();
	Iterator it = set.iterator();
	while (it.hasNext()) {
		String key = it.next().toString();
		Object value = jsonObject.get(key);
		if (value instanceof String || value instanceof Integer || value instanceof Float || value instanceof Double) {
			pathMap.put(pathPre + key, value);
		} else if (value instanceof JSONObject) {
			analysisJson(pathPre + key + "/", (JSONObject) value);
		} else if (value instanceof JSONArray) {
			JSONArray jsonArray = (JSONArray) value;
			for (int i = 0; i < jsonArray.size(); i++) {
				JSONObject tempJson = new JSONObject();
				tempJson.put(i + "", jsonArray.get(i));
				analysisJson(pathPre + key + "/", tempJson);
			}
		}
	}
}

使用orgjson遍歷

private static testJson = "";
 
private static Map<String, Object> pathMap = new HashMap<>();
 
//通過org.json遍歷所有參數(shù)
public static void getJsonMapByOrgjson() {
	JSONObject jsonObject = new JSONObject(testJson);
	System.out.println(jsonObject);
	analysisJson("/", jsonObject);
	for (Map.Entry entry : pathMap.entrySet()) {
		System.out.println(entry);
	}
}
 
//遞歸解析Json、獲取所有鍵值對
public static void analysisJson(String pathPre, JSONObject jsonObject) {
	Set<String> set = jsonObject.keySet();
	Iterator it = set.iterator();
	while (it.hasNext()) {
		String key = it.next().toString();
		Object value = jsonObject.get(key);
		if (value instanceof String || value instanceof Integer || value instanceof Float || value instanceof Double) {
			pathMap.put(pathPre + key, value);
		} else if (value instanceof JSONObject) {
			analysisJson(pathPre + key + "/", (JSONObject) value);
		} else if (value instanceof JSONArray) {
			JSONArray jsonArray = (JSONArray) value;
			for (int i = 0; i < jsonArray.length(); i++) {
				JSONObject tempJson = new JSONObject();
				tempJson.put(i + "", jsonArray.get(i));
				analysisJson(pathPre + key + "/", tempJson);
			}
		}
	}
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中Retry方法的簡單實現(xiàn)

    Java中Retry方法的簡單實現(xiàn)

    這篇文章主要介紹了Java中Retry方法的簡單實現(xiàn),Retry主要是利用Java的lambda表達式和線程接口實現(xiàn)有返回值和無返回值的重試,思考了下就寫了一個簡易Retry功能分享出來,需要的朋友可以參考下
    2024-01-01
  • Java代碼實現(xiàn)矩形覆蓋實例

    Java代碼實現(xiàn)矩形覆蓋實例

    這篇文章主要介紹了Java代碼實現(xiàn)矩形覆蓋實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • Java異常處理的最佳實踐指南

    Java異常處理的最佳實踐指南

    異常處理是軟件開發(fā)中的關鍵環(huán)節(jié),良好的異常處理策略能提高系統(tǒng)的穩(wěn)定性、可維護性和用戶體驗,以下是項目中異常處理的全面指南,需要的朋友可以參考下
    2025-09-09
  • java實例方法被覆蓋,靜態(tài)方法被隱藏Explain(詳解)

    java實例方法被覆蓋,靜態(tài)方法被隱藏Explain(詳解)

    下面小編就為大家?guī)硪黄猨ava實例方法被覆蓋,靜態(tài)方法被隱藏Explain(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • MyBatis-Plus中最簡單的查詢操作教程(Lambda)

    MyBatis-Plus中最簡單的查詢操作教程(Lambda)

    這篇文章主要給大家介紹了關于MyBatis-Plus中最簡單的查詢操作的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • Java中Array、List、Map相互轉換的方法詳解

    Java中Array、List、Map相互轉換的方法詳解

    這篇文章主要介紹了Java中Array、List、Map相互轉換的方法詳解,在實際項目開發(fā)中或者一些算法面試題目中經(jīng)常需要用到Java中這三種類型的相互轉換,比如對于一個整型數(shù)組中尋找一個整數(shù)與所給的一個整數(shù)值相同,需要的朋友可以參考下
    2023-08-08
  • java中List的toArray()方法用法舉例

    java中List的toArray()方法用法舉例

    這篇文章主要介紹了java中List的toArray()方法的相關資料,toArray()方法可以將List轉換為數(shù)組,但需要注意其兩種形式的區(qū)別,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-11-11
  • IntelliJ IDEA 2020安裝使用教程詳解

    IntelliJ IDEA 2020安裝使用教程詳解

    這篇文章主要介紹了IntelliJ IDEA 2020安裝使用教程,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • spring?boot寫java?web和接口

    spring?boot寫java?web和接口

    這篇文章主要介紹了spring?boot寫java?web和接口,Spring?Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程,該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置,下面詳細內容需要的小伙伴可以參考一下
    2022-01-01
  • spring security中Authority、Role的區(qū)別及說明

    spring security中Authority、Role的區(qū)別及說明

    這篇文章主要介紹了spring security中Authority、Role的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

大新县| 迁安市| 保靖县| 都江堰市| 新干县| 广宗县| 临沭县| 长阳| 扬中市| 江山市| 长阳| 繁昌县| 静海县| 商城县| 德保县| 监利县| 青神县| 新和县| 鄂托克前旗| 蒙城县| 台湾省| 泰来县| 利辛县| 林周县| 呼和浩特市| 南丰县| 蓬溪县| 江孜县| 延安市| 高陵县| 沈丘县| 隆昌县| 瑞安市| 屏南县| 鹿泉市| 丰都县| 温泉县| 大港区| 罗山县| 离岛区| 泸溪县|