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类的互相转换的更多相关文章

  1. 一种从JSON数据创建Java类的高效办法

    <一种从JSON数据创建Java类的高效办法> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs JSON格式的数据经常会遇到,比如调用Web服 ...

  2. JSON数据与Java对象的相互转换

    JSON数据与Java对象的相互转换 JSON解析器 常见的解析器:Jsonlib .Gson. fastjson. jackson JSON转化为Java对象 使用步骤: 1.导入jackson的相 ...

  3. Java JSON数据创建和读取

    Java  json数据创建 package com.JavaTest; import com.google.gson.JsonArray; import com.google.gson.JsonOb ...

  4. TypeToken 是google提供的一个解析Json数据的类库中一个类

    Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Type是java里的reflect包的Type ...

  5. 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据

    第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...

  6. 使用Gson转换json数据为Java对象的一个例子

    记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...

  7. JSON数据和Java对象的相互转换

    JSON解析器: 常见的解析器: Jsonlib, Gson, fastjson, jackson 其中应用最广泛的是jackson,阿里的fastjson虽然比jackson快一点,但存在的问题比较 ...

  8. Java json串生成及转bean

      package com; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import j ...

  9. js处理json数据,java处理json数据

    一.js处理json数据 处理办法之一是把本机json数据或远程返回json数据用eval函数,使之变成DOM对象. 例如: var people = { "programmers" ...

随机推荐

  1. SQL SERVER 2014 缺少Business Intelligence 解决办法

    SQL SERVER 2014安装完所有的数据库工具后,缺少开发工具 Business Intelligence   之解决办法. https://msdn.microsoft.com/en-us/l ...

  2. Android 读取excel 文件

    在面对选择国家地区,选择手机号码区号等信息的时候,常常我们是读取已存好的数据,我现在读取的就是excel里面的数据,所以在此记录下读取的方法以及注意点. 下面就是读取国际地区手机区号的数据效果图: e ...

  3. Python+Selenium与Chrome如何进行完美结合

    zhuan:http://blog.51cto.com/starpoint/2102975?cid=704621 使用WebDriver在Chrome浏览器上进行测试时,需要从http://chrom ...

  4. Wireshark漫谈(一)

    可能有人会说,一个软件的安装有什么好谈的,无非就是"同意,同意,同意......是,是,是"诸如此类的选项.的确,Wireshark软件的安装步骤是挺简单的,不过本文不是想谈安装步 ...

  5. selenium +python之Page Obiect设计模式

    PageObject是selenium自动化测试项目开发实践的最佳设计模式之一,它主要体现对界面交互细节的封装,这样可以使测试案例更关注于业务而非界面细节,从而提高测试案例的可读性. 1.认识Page ...

  6. ACM的数学基础

    懒得整理了,请勿往下看.  (一)欧拉函数 设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值,这里函数φ:N→N,n→φ(n)称为欧拉函数.有如下一些性质: (1)欧拉 ...

  7. BZOJ 2119: 股市的预测 SA

    2119: 股市的预测 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 434  Solved: 200[Submit][Status][Discuss ...

  8. Cocos2d-x——导入Cocostudio资源

    (搬运自我在SegmentFault的博客) 目前正在和实训的小组成员一起做一款手机2D游戏,我们采用了Cocos2d-x进行开发.之前虽然早有耳闻,这次却是第一次认真地学习和使用Cocos2d-x. ...

  9. Android(java)学习笔记121:BroadcastReceiver之 自定义广播

    广播使用:               电台:对外发送信号.---------电台发送广播(可以自定义)               收音机:接收电台的信号.-----广播接收者 这里,我们就说明自定 ...

  10. ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)

    一. 需求背景: 在我们使用ansible的过程中经常会遇到这样的情况,我们要管理的机器都在内网中,这些内网机器的登录都是通过跳板机或者堡垒机登录.我们的ansible机器不能直接管理到这些后端的机器 ...