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" ...
随机推荐
- GoAccess安装和使用介绍
使用文档参考地址:https://my.oschina.net/mrco/blog/181737https://www.fanhaobai.com/2017/06/go-access.html goa ...
- dstat工具使用介绍
一.dstat工具多功能系统资源统计生成工具.获取信息类似top.free.iostat.vmstat等多个工具的合集,所以也称为vmstat.iostat.ifstat等工具替代品,其结果可以存储成 ...
- Java 文件操作-File
1.File文件操作 java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等),不能对文件的 ...
- HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)
按身高排序,每个人前面最高的人数有上限,如果超出上限说明impossible, 每次考虑最小的人,把他放在在当前的从左往右第k+1个空位 因为要求字典序最小,所以每次k和(上限-k)取min值. 没有 ...
- 使用EventLog组件保存Windows系统日志
实现效果: 知识运用: EventLog类的CreateEventSource方法 //用于建立一个应用程序 使用指定的Sourc作为向本机上的日志中写入日志项的有效事件源 CreateEventS ...
- JavaScript onkeydown事件入门实例(键盘某个按键被按下)
JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...
- java基础—对象转型
一.对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型.转型的意思是:如把float类型转成int类型,把double类 ...
- C#:CodeSmith根据数据库中的表创建C#数据模型Model + 因为没有钱买正版,所以附加自己写的小代码
对于C#面向对象的思想,我们习惯于将数据库中的表创建对应的数据模型: 但假如数据表很多时,我们手动增加模型类会显得很浪费时间: 这个时候有些人会用微软提供的EntityFrameWork,这个框架很强 ...
- Where art thou-freecodecamp算法题目
Where art thou 1.要求 写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组. 如果返回的数组中包含 source ...
- 每天一个linux命令(13):less命令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...