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" ...
随机推荐
- javascript对象的学习
一.对象的定义: 对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值.即属性的无序集合. JavaScript 提供多个内建对 ...
- 多段图动态规划dp
多段图问题是DP的基础题目.大体的意思是有一个赋权有向图,其顶点集被分为几个子集.求经过每个子集从源点到终点的最短路径 import java.util.ArrayList; import java. ...
- oracle 、server和my sql 语法区别
1.总结Oracle .sqlserver和mysql中查询10-20条记录的写法 一: oracle数据库写法: 1:select * from (select rownum rn ,* from ...
- winform 配置文件增删改查
winform 配置文件是 App.config webform 的配置文件 是web.config 其实基本操作都一样 设置个配置文件 全局文件 访问者个配置文件 对这个配置文件增删 ...
- (五)SpringMVC之使用Kaptcha实现验证码功能
一.什么是Kaptcha Kaptcha是Google开发的用于自动生成验证码的插件. 二.怎么导入Kaptcha ① 如果没有用Maven管理工具的话就直接导入包(可以直接下载:pau8) http ...
- CF Gym 100637F The Pool for Lucky Ones
题意:给你一串非负整数,可以将一个非零数减1,加到相邻的数字上,要使其中所有最大数字的和最小. 题解:模拟可以过.也可以分析,可以要减少最大数字和,如果最大数字出现大于等于3次,可以把最大数字加一,或 ...
- 3. Netbackup 7.6客户端的安装(windows/linux)
1 客户端的安装 1.1 Windows客户端安装 1.1.1 客户端hosts修改 windows xp/2003/vista/2008/7/8用户HOSTS文件是在“c:\windows\syst ...
- Maven settings.xml配置详解
首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...
- 【转】绝对不要在树莓派上使用无源的HDMI→VGA视频转换器
http://www.guokr.com/post/521521/ 树莓派由于BCM2835的限制,仅有HDMI和复合视频两种输出形式.所以对于使用VGA显示器的广大用户,HDMI转VGA转换器就成了 ...
- 修改Windows默认调试器
程序崩溃时,系统会弹窗让你选择是否进行调试,可以设置系统默认调试器. 注册表位置: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVe ...