日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java 反射 json_java 反射机制构建JSON字符串

發布時間:2024/7/23 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 反射 json_java 反射机制构建JSON字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 反射機制構建JSON字符串。接著上一篇文章、今天繼續學習利用java 反射機制構建JSON字符串。

JSON的格式跟使用的方式方法就不講了、這個百度一下就有……好了今天心情很糟糕、直接上代碼吧!

[java]view plaincopyprint?

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.List;

import com.test.hzw.bean.test_user;

import com.test.hzw.dao.impl.DaoImpl;

/**

* Json轉換測試類

* @author 胡漢三

*

*/

@SuppressWarnings({“unchecked”,”unused”})

public class Reflect004 {

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

DaoImpl dao = new DaoImpl();

test_user u = new test_user();

String sqlPage = “SELECT * FROM test_user WHERE id <= “;

sqlPage += ” (SELECT id FROM test_user ORDER BY id LIMIT “+(2-1)*20+”, 1) “;

sqlPage += ” ORDER BY id LIMIT 20 ” ;

/*

* 從數據庫查詢并獲得集合

*

* PS: 該方法是上一篇文章的內容

*/

List listT = (List)dao.findList(u, sqlPage, new ArrayList());

String s = ToJsonByList(listT);

System.out.println(s);

System.out.println(ToJsonByAll(listT.get(0)).toString());

}

/**

* 根據List集合生成Json數組格式字符串(只支持bean方式)

* @param

* @param list 集合對象

* @return

*/

public static String ToJsonByList(List list){

StringBuffer b = new StringBuffer(“[");

if(list!=null&&list.size()>0){

for (int i = 0; i < list.size(); i++){

Object o = list.get(i);

try {

//調用ToJsonByBean方法

StringBuffer s = ToJsonByBean(o);

if(s!=null&&!s.equals("")){

b.append(s).append(",");

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

b.append("]“);

return b.replace(b.lastIndexOf(“,”),b.lastIndexOf(“,”) + 1 ,”").toString();

}

/**

* 根據javaBean生成Json對象格式字符串

* @param object 任意javaBean類型對象

* @return 拼接好的StringBuffer對象

*/

public static StringBuffer ToJsonByBean(Object object) throws Exception{

Class clazz = object.getClass(); //獲得Class對象

Field[] fields = clazz.getDeclaredFields(); //獲得Class對象的字段數組

StringBuffer sb = new StringBuffer(“{“);

/*

* 循環字段數組

*/

for (Field field : fields) {

String fieldName = field.getName(); //獲得字段名稱

//獲得字段對應的get方法對象

Method method = clazz.getMethod(“get” + change(fieldName), null);

//調用get方法獲得字段的值

Object property = method.invoke(object, null);

/*

* 生成json字符串數據

*/

if(property == null){

sb.append(“\”"+fieldName+”\”:\”\”,”);

}else{

if (field.getType().getName().equals(“java.lang.Boolean”))

sb.append(“\”"+fieldName+”\”:”+Boolean.valueOf(property.toString())+”,”);

else

sb.append(“\”"+fieldName+”\”:\”"+property+”\”,”);

}

}

sb.append(“}”);

return sb.replace(sb.lastIndexOf(“,”),sb.lastIndexOf(“,”) + 1 ,”");

}

/**

* @param src 源字符串

* @return 字符串,將src的第一個字母轉換為大寫,src為空時返回null

*/

public static String change(String src) {

if (src != null) {

StringBuffer sb = new StringBuffer(src);

sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));

return sb.toString();

} else {

return null;

}

}

/**

* 生成Json數組格式字符串

* @param object 任意類型對象

* @return 拼接好的StringBuffer對象

*/

public static StringBuffer ToJsonByAll(Object object) throws Exception{

Class clazz = object.getClass();

Field[] fields = clazz.getDeclaredFields();

StringBuffer sb = new StringBuffer(“{[");

for (Field field : fields) {

String fieldName = field.getName();

Method method = clazz.getMethod("get" + change(fieldName), null);

Object property = method.invoke(object, null);

if(property == null){

sb.append("\"\",");

}else{

sb.append("\"" + property + "\",");

}

}

sb.append("]}”);

return sb.replace(sb.lastIndexOf(“,”),sb.lastIndexOf(“,”) + 1 ,”");

}

}

有的時候、很多時候我總是控制不住自己的情緒。

o(︶︿︶)o 唉!

總結

以上是生活随笔為你收集整理的java 反射 json_java 反射机制构建JSON字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。