JAVA-json数据与Java的bean类的互相转换
Java调用webservice时用到了json格式的数据,然后就整理这个类。那里不合适的话,希望能够得到指正。
public class JsonsAndBeanList
{
/**
* json数据转换为对象数据
* @param jsonObject
* @param cla
* @return
*/
public static <T> T convertToObj(JSONObject jsonObject, Class<T> cla)
{
if (jsonObject == null)
{
return null;
}
Field[] fb = cla.getDeclaredFields();
T t;
try
{
t = cla.newInstance();
for (int j = 0; j < fb.length; j++)
{
String fieldName = fb[j].getName();
String fieldNameU = fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
Method method = cla.getMethod("set" + fieldNameU, fb[j].getType());
method.invoke(t, jsonObject.get(fieldName));
}
return t; } catch (Exception e)
{
e.printStackTrace();
}
return null;
} /**
* json数据转换为数据集合
* @param strJson
* @param cla
* @return
*/
public static <T> List<T> convertToList(String strJson, Class<T> cla)
{
JSONArray jsonArray = null;
try
{
jsonArray = new JSONArray(strJson);
} catch (JSONException e1)
{
e1.printStackTrace();
}
List<T> list = new ArrayList<T>();
if (jsonArray == null)
{
return list;
}
try
{
for (int i = 0; i < jsonArray.length(); i++)
{
JSONObject jsonObject = jsonArray.getJSONObject(i);
T t = convertToObj(jsonObject, cla);
list.add(t);
}
} catch (Exception e)
{
e.printStackTrace();
}
return list;
} /**
* 对象数据转换为json数据
* @param cla
* @return
*/
public static <T> String convertToJson(T cla)
{
if (cla == null)
{
return null;
}
Field[] fb = cla.getClass().getDeclaredFields();
String t = "{";
try
{
for (int j = 0; j < fb.length; j++)
{
String fieldName = fb[j].getName();
String fieldNameU =
fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
Method method = cla.getClass().getMethod("get" + fieldNameU);
t += "\"" + fieldName + "\":\"" + method.invoke(cla).toString() + "\",";
}
t = t.substring(0, t.length() - 1) + "}";
return t; } catch (Exception e)
{
e.printStackTrace();
}
return null;
} /**
* 数据集合转换为json格式
* @param list
* @return
*/
public static <T> String convertToJsons(List<T> list)
{
String result = "[";
if (list == null)
{
return null;
}
for (int i = 0; i < list.size(); i++)
{
result += convertToJson(list.get(i)) + ",";
}
result = result.substring(0, result.length() - 1) + "]";
return result;
}
}
方法返回值前的"<T>"是说明函数内会用到泛型类"T"。
参数中出现"<T>"的话,就说明这个参数类型不固定,你想传什么传什么(当然这个"什么"也是有限制的,就不详述了)。
JAVA-json数据与Java的bean类的互相转换的更多相关文章
- 一种从JSON数据创建Java类的高效办法
<一种从JSON数据创建Java类的高效办法> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs JSON格式的数据经常会遇到,比如调用Web服 ...
- JSON数据与Java对象的相互转换
JSON数据与Java对象的相互转换 JSON解析器 常见的解析器:Jsonlib .Gson. fastjson. jackson JSON转化为Java对象 使用步骤: 1.导入jackson的相 ...
- Java JSON数据创建和读取
Java json数据创建 package com.JavaTest; import com.google.gson.JsonArray; import com.google.gson.JsonOb ...
- TypeToken 是google提供的一个解析Json数据的类库中一个类
Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Type是java里的reflect包的Type ...
- 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据
第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...
- 使用Gson转换json数据为Java对象的一个例子
记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...
- JSON数据和Java对象的相互转换
JSON解析器: 常见的解析器: Jsonlib, Gson, fastjson, jackson 其中应用最广泛的是jackson,阿里的fastjson虽然比jackson快一点,但存在的问题比较 ...
- Java json串生成及转bean
package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...
- js处理json数据,java处理json数据
一.js处理json数据 处理办法之一是把本机json数据或远程返回json数据用eval函数,使之变成DOM对象. 例如: var people = { "programmers" ...
随机推荐
- gd调试命令,gdb调试core文件
使用 gcc -g test.c -o test.out 编译程序,只有加-g参数才支持gdb调试: 然后 gdb ./test.out 运行可执行文件,进入gdb调试模式(gdb),在括号后面的输入 ...
- iOS动画——Layer Animations
我们先来看一下今天我们要实现的效果,今天实现的效果用第一篇View Animations能实现相同效果. 动画由书籍<iOS Animations by tutorials>提供,我只是一 ...
- MySQL8 Authentication plugin 'caching_sha2_password' cannot be loaded
这是因为mysql8 和以前密码的验证方式不同,可以先从命令行进入 MySQL -uroot -p 然后输入 ALTER USER 'root'@'localhost' IDEN ...
- Windows环境下使用Apache+mod
1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...
- stringByAppendingString和stringByAppendingPathComponent
NSString提供了两个拼串的方法: /** * @brief 简单的字符串拼接,头文件 NSString (NSStringExtensionMethods) * * @param aString ...
- 原型与原型继承demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 洛谷P3372线段树1
难以平复鸡冻的心情,虽然可能在大佬眼里这是水题,但对蒟蒻的我来说这是个巨大的突破(谢谢我最亲爱的lp陪我写完,给我力量).网上关于线段树的题解都很玄学,包括李煜东的<算法竞赛进阶指南>中的 ...
- HDU-4848-Such Conquering
这题就是深搜加剪枝,有一个很明显的剪枝,因为题目中给出了一个deadline,所以我们一定要用这个deadline来进行剪枝. 题目的意思是求到达每个点的时间总和,当时把题看错了,卡了好久. 剪枝一: ...
- (67)windows安装zabbix监控
在windows下安装zabbix agent,方法非常简单.首先到zabbix官方下载windows版本agent,地址:http://www.zabbix.com/download.php,找到“ ...
- destoon后台权限-不给客户创始人权限并屏蔽部分功能
1.根目录下后台入口文件admin.php $_founder = $CFG['founderid'] == $_userid ? $_userid : 0; // $CFG['founderid ...