欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 如何解析key為動態(tài)的json操作

 更新時間:2021年02月19日 09:50:40   作者:碼點  
這篇文章主要介紹了Java 如何解析key為動態(tài)的json操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

遇到了這樣的json串:

"panel": {
    "8": {
      "112": 1
    },
    "11": {
      "147": 2
    }
  }

遍歷獲取Key和Value

LinkedHashMap<String, String> jsonMap = JSON.parseObject(jsonStr, new TypeReference<LinkedHashMap<String, String>>(){});
for (Map.Entry<String, String> entry : jsonMap.entrySet()) {
  System.out.println(entry.getKey() + ":" + entry.getValue());
}

補充:Java利用反射動態(tài)獲取參數(shù)并進行操作實例,實現(xiàn)動態(tài)獲取實體類解析JSON

今天看到程序里面有大量數(shù)據(jù)都是使用的JSON傳輸,解析重復(fù)代碼太多了,然后重構(gòu)了解析JSON的方式,利用反射機制把解析的方式封裝了一下,我這是使用的FastJson,使用其他JSON的自己改一下就可以了

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.Map.Entry; 
import com.alibaba.fastjson.JSONObject;
import com.zwsd.project.system.user.domain.User;
 
/**
 * 字符串工具類
 * 
 * @author wangchl
 */
public class JsonUtils {
 
	/**
	 * 獲取參數(shù)不為空值
	 * 
	 * @param  method實體類     text:JSON字符串 
	 * @return obj 返回值
	 */
	public static <T> Object Analysis(String method, String text) throws      
  ClassNotFoundException {
		Class<?> p = Class.forName(method);
		JSONObject jsonArray = JSONObject.parseObject(text);
 
		try {
			Constructor con = p.getConstructor();
			Object obj = con.newInstance();
			// 獲取私有成員變量,并對它進行賦值
			for (Entry<String, Object> entry : jsonArray.entrySet()) {
 
				try {
          //設(shè)置Key
					Field newname = p.getDeclaredField(entry.getKey());
					// 取消私有成員變量語言訪問檢查public void setAccessible(boolean flag)
					newname.setAccessible(true);
          //value值為空不做任何操作
					if (!entry.getValue().equals("")) {
						newname.set(obj, entry.getValue());
					}
				} catch (NoSuchFieldException e) {
					// 解析JSON時實體類中沒有Key中的字段時會出現(xiàn)異常,忽略,不做任何處理
				}
			}
			return obj;
			
		} catch (NoSuchMethodException e1) {
			e1.printStackTrace();
		} catch (SecurityException e1) {
			e1.printStackTrace();
		} catch (InstantiationException e1) {
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			e1.printStackTrace();
		} catch (IllegalArgumentException e1) {
			e1.printStackTrace();
		} catch (InvocationTargetException e1) {
			e1.printStackTrace();
		}
		return null;
	}
	/**
	 * 
	 *使用方式
	 *
	 */
	public static void main(String[] args) {
		try {
			String text = " 
      {\"flag\":\"0\",\"token\":\"0b4b2ef3fed24c99b10c4fca65a09632\"}";
			User user= (User) JsonUtils.Analysis(User.class.getName(), text);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}///
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 詳解自定義SpringMVC的Http信息轉(zhuǎn)換器的使用

    詳解自定義SpringMVC的Http信息轉(zhuǎn)換器的使用

    這篇文章主要介紹了詳解自定義SpringMVC的Http信息轉(zhuǎn)換器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Maven的常用命令總結(jié)大全

    Maven的常用命令總結(jié)大全

    這篇文章主要給大家介紹了Maven常用命令總結(jié)的相關(guān)資料,maven最大的作用就是用于對項目中jar包依賴的統(tǒng)一管理,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 初識Spring Boot框架之Spring Boot的自動配置

    初識Spring Boot框架之Spring Boot的自動配置

    本篇文章主要介紹了初識Spring Boot框架之Spring Boot的自動配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java接口自動化測試框架設(shè)計之Get請求方法和測試詳解

    Java接口自動化測試框架設(shè)計之Get請求方法和測試詳解

    這篇文章主要介紹了Java接口自動化測試框架設(shè)計 Get請求方法和測試,框架設(shè)計我們只是介紹基本的組件,而且框架設(shè)計沒有想象那么難,一步一步跟著做就會了。這篇我們來演示,如果通過Java代碼來實現(xiàn)一個用純代碼實現(xiàn)Http中的Get請求過程,需要的朋友可以參考下
    2019-07-07
  • SpringBoot實戰(zhàn)之高效使用枚舉參數(shù)(原理篇)案例詳解

    SpringBoot實戰(zhàn)之高效使用枚舉參數(shù)(原理篇)案例詳解

    這篇文章主要介紹了SpringBoot實戰(zhàn)之高效使用枚舉參數(shù)(原理篇)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Spring中事務(wù)幾個常見的問題解決

    Spring中事務(wù)幾個常見的問題解決

    這篇文章主要介紹了Spring中事務(wù)幾個常見的問題解決,事務(wù)這個概念是數(shù)據(jù)庫層面的,Spring只是基于數(shù)據(jù)庫中的事務(wù)進行擴展,以及提供了一些能讓程序員更新方便操作事務(wù)的方式
    2022-08-08
  • 詳解時間輪TimeWheel的工作原理

    詳解時間輪TimeWheel的工作原理

    時間輪(TimeWheel)作為一種高效率的計時器實現(xiàn)方案,在1987年發(fā)表的論文Hashed?and?Hierarchical?Timing?Wheels中被首次提出。本文主要來聊聊它的工作原理,感興趣的可以了解一下
    2023-02-02
  • SpringBoot如何解析參數(shù)的深入理解

    SpringBoot如何解析參數(shù)的深入理解

    這篇文章主要給大家介紹了關(guān)于SpringBoot是如何解析參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java實現(xiàn)飛機小游戲

    Java實現(xiàn)飛機小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)飛機小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • spring框架下websocket的搭建

    spring框架下websocket的搭建

    本篇文章主要介紹了spring框架下websocket的搭建,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03

最新評論