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" ...
随机推荐
- wireshark使用教程及TCP三次握手实例
安装后,选择对应访问网络的网卡,即可看到下面的主界面 具体说下封包详细信息 (Packet Details Pane) 这个面板是我们最重要的,用来查看协议中的每一个字段. 各行信息分别为 Frame ...
- EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)
在项目实际开发中,有将打开的各个链接页面隔离的需求(防止静态资源起冲突),这个时候常规思路就是使用iframe来实现!但遇到一个比较棘手的问题,当用easyui Tabs打开一个iframe页面时,怎 ...
- Yii2.0 集成使用富头像上传编辑器
在开发过程中,我们会用到头像上传的功能.这里给大家推荐一款比较流行的头像上传组件,FullAvatarEditor 2.3(富头像上传编辑器). 实际效果如图所示: 1.下载组件,下载地址:http: ...
- python+selenium之验证码的处理
对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码.验证码的类型很多,有字母数字的,有汉字的.甚至还有需要用户输入一道算术题的答案的.对于系统来说,使用验证码可以有效地防止采用机器猜测方 ...
- python基础教程总结4—基本语句
一.print 和 import 的更多信息 print 打印多个表达式也是可行的,只要将它们用逗号隔开就好: >>> print('Age:' , 42) Age: 42 可以看到 ...
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) A Amusing Numbers (数学)
其实挺简单的.先直接算出之前已经排在k这个数前面的数字.比如543是三位的,那么100~543都是可以的,两位的10~54. 如果还需要往前面补的话,那么依次考虑1000~5430,5430是上界不能 ...
- Dapper学习总结
看了<Dapper从入门到精通>后的总结 (1)Dapper 是直接扩展 IDBConnection,而且是单独一个文件,可以直接嵌入到项目中使用. (2)通过手写sql语句,调用exec ...
- 01_9_Struts用ModelDriven接收参数
01_9_Struts用ModelDriven接收参数 1. 配置struts.xml文件 <package name="user" namespace="/use ...
- lua 使用递归查找键值
function cc.exports.findValueByTbl(tbl,key)--递归方法,用于查找tbl中对应的键值 for k,v in pairs(tbl) do if k == key ...
- 简单的Datable转List方法
public static class DataTableUtils<T> where T : new() { public static List<T> ConvertToM ...