1. 程式人生 > >反射解析json為實體工具類

反射解析json為實體工具類

Json格式的資料是實際開發中經常用到的資料格式,java有直接解析為實體的方法,但是實體屬性對用不上的時候回報錯,所以寫了一個用反射和泛型的方式來解析json為實體的工具類。非常簡單

@SuppressWarnings("unchecked")
	public static <T> T jsonToObject(JSONObject json,Class<T> clazz) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException{  
		Field[] field = clazz.getFields();//獲取實體的所有屬性
		Object obj = clazz.newInstance(); //例項化反射的物件,最後會將賦值後的物件返回
		for (int i = 0; i < field.length; i++) {//迴圈資料陣列
			String name = field[i].getName(); // 獲取屬性的名字
            name = name.substring(0, 1).toUpperCase() + name.substring(1); // 將屬性的首字元大寫,方便構造get,set方法
            Method m = clazz.getMethod("set"+name,String.class);//獲取set方法,用於賦值
            String value="" + json.get(name);//json中獲取的值
            if(StringUtils.isNotBlank(value) && !"null".equals(value)){//判斷json中獲取的值是否為空
            	m.invoke(obj,value);//呼叫set方法為該屬性賦值
            }
		}
		return (T)obj;//返回物件
	}

經過測試,完全沒問題

相關推薦

反射解析json實體工具

Json格式的資料是實際開發中經常用到的資料格式,java有直接解析為實體的方法,但是實體屬性對用不上的時候回報錯,所以寫了一個用反射和泛型的方式來解析json為實體的工具類。非常簡單 @Suppre

JAVA jdbc ResultSet 通過反射機制轉換實體Bean

最近專案又有一部分用到jdbc了。。。都快忘光了。。。複習了一下,在這記錄一下。肯定有有問題的地方,歡迎指正。 轉實體類工具 /** * 公司名稱: * 專案名稱: * 版本號 : 1.0 * 建立時間:2017/3/24 16:19

Jackson反序列JSON實體對象出現:no String-argument constructor/factory method to deserialize from String value的問題

data- art sch ref empty 實體對象 .com lan str 解決方法: 1、JSON字符串中有轉義字符,可以替換,也可以直接toString之後清除轉移字符。 參考: https://stackoverflow.com/questions

map轉實體工具

sem throws array 工具類 ase .com exception copy ret package cst.spmBase.util; import java.lang.reflect.InvocationTargetException;import java

java中使用反射獲取pojo(實體的所有欄位值

 說起反射,不得不說它實在是太強大了,通過反射就可以輕輕鬆鬆拿到各種東東,如果你想在專案中解除對某個類的依賴,可以考慮用反射。        今天跟大家分享的是通過java中的反射,獲取pojo類的所有欄位值。 &nb

校驗字串是否是合法的JSON格式的工具

這是專案中用到的驗證字串是否是合法json格式的工具類,記錄於此。 import java.text.CharacterIterator; import java.text.StringCharacterIterator; /** * Created by LY on 201

shell解析json之jq工具

 工具下載地址及各版本的安裝方式,我常用的是把工具包下載下來直接用,不安裝: https://stedolan.github.io/jq/manual/#example1 test.json {     "sys": {         "valid": "true",  

Java操作JSON的便捷工具(Gson)

對於JSON資料格式的處理,自開發Java以來,已用過多種JSON的開源工具,用得最好,也用得最High的恐怕要屬Google的Gson了。 特別為它寫了一個工具類,放入常備工具中,方便使用。下面是為GSON 1.5版本重寫的工具類。 依賴包: slf4j-api-1.6.

Android 讀取res檔案中raw的json檔案 的工具StreamUtils

public class StreamUtils { public static String get(Context context, int id) { InputStream stre

Json序列化工具

package com.mmall.util; import com.google.common.collect.Lists; import com.mmall.pojo.Category; import com.mmall.pojo.TestPojo; import c

json資料轉化工具示例

import com.dtyunxi.lang.BusinessRuntimeException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.data

java物件判斷是否工具

package common; import java.util.List; import java.util.Map; import com.google.common.collect.Maps; /** * * 工具類 * * @version 1.

XML資料轉換Map工具

所需架包:dom4j-1.6.jar 程式碼: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.

JSON字串格式化工具-java

/** * * 格式化核心邏輯來源於JSON格式化 @link {http://www.bejson.com/} * @author joker.yyc */ public class JsonFormatUtils { /** *

json操作實用工具。實用jackson實現

import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.

XML資料轉換Map工具-XmlMapUtils

架包引用:<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</ver

Java工具--JSON解析(以百度天氣例)

隨著JSON的廣泛應用,解析JSON也成了程式設計師的一項基本技能。今天介紹JSON解析利器-Gson和fastjson Gson是谷歌封裝的JSON解析類庫,使用方便,fastjson是阿里巴巴的產品,使用也非常方便,我問小滿喜歡用哪個?他說Gson,wh

Android Gson解析json工具封裝

pac spa google lis object sonar andro on() div package com.springSecurity.gson; import java.util.ArrayList; import java.util.List

Android關於json解析,封裝簡易的工具

android中請求過來的資料,其實都是json字串,那麼如何解析json字串才是我們最應該關心的,我就把我在專案中最常用的分享出來,其他的可以自行擴充套件。 新建一個JsonUtil類,然後私有化構造方法,因為作為工具類,我們並不希望是通過例項化一個類才去實現功能的。 第一步: p

java將JSON字串轉換實體物件,基於net sf json實現

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!