- 浏览: 165924 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
单v纯微笑:
您好,能把dbsyn_config_quartz这个表发给我一 ...
定时器(quartz+spring)读取数据库配置 -
fenglingabc:
我用了comet4j 结果因为推送比较频繁(基本上1秒一次), ...
comet4j轮询 -
NeverGiveUpToChange:
nice,还不错哦,谢谢啦!!!
springmvc上传 -
ralfsqual:
自定义的线程中的逻辑每次都是被执行两次,不知道为什么啊。比如打 ...
comet4j轮询 -
goll2012:
我倒,原来要配置tomcat。。。果然是高手,对于只看不动手的 ...
comet4j轮询
今天在网上搜了一下封装json数据,自己也验证了一下 ,感觉还行 就直接搬过来了,不够还有部分小代码是自己封装的。
package com.json;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class JSONUtils
{
/**
*
* @author wangwei JSON工具类
* @param <T>
*
*/
/***
* 将List对象序列化为JSON文本
*/
public static <T> String toJSONString(List<T> list)
{
JSONArray jsonArray = JSONArray.fromObject(list);
return jsonArray.toString();
}
/***
* 将对象序列化为JSON文本
* @param object
* @return
*/
public static String toJSONString(Object object)
{
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/***
* 将JSON对象数组序列化为JSON文本
* @param jsonArray
* @return
*/
public static String toJSONString(JSONArray jsonArray)
{
return jsonArray.toString();
}
/***
* 将JSON对象序列化为JSON文本
* @param jsonObject
* @return
*/
public static String toJSONString(JSONObject jsonObject)
{
return jsonObject.toString();
}
/***
* 将对象转换为List对象
* @param object
* @return
*/
public static List toArrayList(Object object)
{
List arrayList = new ArrayList();
JSONArray jsonArray = JSONArray.fromObject(object);
Iterator it = jsonArray.iterator();
while (it.hasNext())
{
JSONObject jsonObject = (JSONObject) it.next();
Iterator keys = jsonObject.keys();
while (keys.hasNext())
{
Object key = keys.next();
Object value = jsonObject.get(key);
arrayList.add(value);
}
}
return arrayList;
}
/***
* 将对象转换为Collection对象
* @param object
* @return
*/
public static Collection toCollection(Object object)
{
JSONArray jsonArray = JSONArray.fromObject(object);
return JSONArray.toCollection(jsonArray);
}
/***
* 将对象转换为JSON对象数组
* @param object
* @return
*/
public static JSONArray toJSONArray(Object object)
{
return JSONArray.fromObject(object);
}
/***
* 将对象转换为JSON对象
* @param object
* @return
*/
public static JSONObject toJSONObject(Object object)
{
return JSONObject.fromObject(object);
}
/***
* 将对象转换为HashMap
* @param object
* @return
*/
public static HashMap toHashMap(Object object)
{
HashMap<String, Object> data = new HashMap<String, Object>();
JSONObject jsonObject = JSONUtils.toJSONObject(object);
Iterator it = jsonObject.keys();
while (it.hasNext())
{
String key = String.valueOf(it.next());
Object value = jsonObject.get(key);
data.put(key, value);
}
return data;
}
/***
* 将对象转换为List<Map<String,Object>>
* @param object
* @return
*/
// 返回非实体类型(Map<String,Object>)的List
public static List<Map<String, Object>> toList(Object object)
{
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
JSONArray jsonArray = JSONArray.fromObject(object);
for (Object obj : jsonArray)
{
JSONObject jsonObject = (JSONObject) obj;
Map<String, Object> map = new HashMap<String, Object>();
Iterator it = jsonObject.keys();
while (it.hasNext())
{
String key = (String) it.next();
Object value = jsonObject.get(key);
map.put((String) key, value);
}
list.add(map);
}
return list;
}
/***
* 将JSON对象数组转换为传入类型的List
* @param <T>
* @param jsonArray
* @param objectClass
* @return
*/
public static <T> List<T> toList(JSONArray jsonArray, Class<T> objectClass)
{
return JSONArray.toList(jsonArray, objectClass);
}
/***
* 将对象转换为传入类型的List
* @param <T>
* @param jsonArray
* @param objectClass
* @return
*/
public static <T> List<T> toList(Object object, Class<T> objectClass)
{
JSONArray jsonArray = JSONArray.fromObject(object);
return JSONArray.toList(jsonArray, objectClass);
}
/***
* 将JSON对象转换为传入类型的对象
* @param <T>
* @param jsonObject
* @param beanClass
* @return
*/
public static <T> T toBean(JSONObject jsonObject, Class<T> beanClass)
{
return (T) JSONObject.toBean(jsonObject, beanClass);
}
/***
* 将将对象转换为传入类型的对象
* @param <T>
* @param object
* @param beanClass
* @return
*/
public static <T> T toBean(Object object, Class<T> beanClass)
{
JSONObject jsonObject = JSONObject.fromObject(object);
return (T) JSONObject.toBean(jsonObject, beanClass);
}
/***
* 将JSON文本反序列化为主从关系的实体
* @param <T> 泛型T 代表主实体类型
* @param <D> 泛型D 代表从实体类型
* @param jsonString JSON文本
* @param mainClass 主实体类型
* @param detailName 从实体类在主实体类中的属性名称
* @param detailClass 从实体类型
* @return
*/
public static <T, D> T toBean(String jsonString, Class<T> mainClass,
String detailName, Class<D> detailClass)
{
JSONObject jsonObject = JSONObject.fromObject(jsonString);
JSONArray jsonArray = (JSONArray) jsonObject.get(detailName);
T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
List<D> detailList = JSONUtils.toList(jsonArray, detailClass);
try
{
BeanUtils.setProperty(mainEntity, detailName, detailList);
}
catch (Exception ex)
{
throw new RuntimeException("主从关系JSON反序列化实体失败!");
}
return mainEntity;
}
/***
* 将JSON文本反序列化为主从关系的实体
* @param <T>泛型T 代表主实体类型
* @param <D1>泛型D1 代表从实体类型
* @param <D2>泛型D2 代表从实体类型
* @param jsonString JSON文本
* @param mainClass 主实体类型
* @param detailName1 从实体类在主实体类中的属性
* @param detailClass1 从实体类型
* @param detailName2 从实体类在主实体类中的属性
* @param detailClass2 从实体类型
* @return
*/
public static <T, D1, D2> T toBean(String jsonString, Class<T> mainClass,
String detailName1, Class<D1> detailClass1, String detailName2,
Class<D2> detailClass2)
{
JSONObject jsonObject = JSONObject.fromObject(jsonString);
JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);
JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);
T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
List<D1> detailList1 = JSONUtils.toList(jsonArray1, detailClass1);
List<D2> detailList2 = JSONUtils.toList(jsonArray2, detailClass2);
try
{
BeanUtils.setProperty(mainEntity, detailName1, detailList1);
BeanUtils.setProperty(mainEntity, detailName2, detailList2);
}
catch (Exception ex)
{
throw new RuntimeException("主从关系JSON反序列化实体失败!");
}
return mainEntity;
}
/***
* 将JSON文本反序列化为主从关系的实体
* @param <T>泛型T 代表主实体类型
* @param <D1>泛型D1 代表从实体类型
* @param <D2>泛型D2 代表从实体类型
* @param jsonString JSON文本
* @param mainClass 主实体类型
* @param detailName1 从实体类在主实体类中的属性
* @param detailClass1 从实体类型
* @param detailName2 从实体类在主实体类中的属性
* @param detailClass2 从实体类型
* @param detailName3 从实体类在主实体类中的属性
* @param detailClass3 从实体类型
* @return
*/
public static <T, D1, D2, D3> T toBean(String jsonString,
Class<T> mainClass, String detailName1, Class<D1> detailClass1,
String detailName2, Class<D2> detailClass2, String detailName3,
Class<D3> detailClass3)
{
JSONObject jsonObject = JSONObject.fromObject(jsonString);
JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);
JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);
JSONArray jsonArray3 = (JSONArray) jsonObject.get(detailName3);
T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
List<D1> detailList1 = JSONUtils.toList(jsonArray1, detailClass1);
List<D2> detailList2 = JSONUtils.toList(jsonArray2, detailClass2);
List<D3> detailList3 = JSONUtils.toList(jsonArray3, detailClass3);
try
{
BeanUtils.setProperty(mainEntity, detailName1, detailList1);
BeanUtils.setProperty(mainEntity, detailName2, detailList2);
BeanUtils.setProperty(mainEntity, detailName3, detailList3);
}
catch (Exception ex)
{
throw new RuntimeException("主从关系JSON反序列化实体失败!");
}
return mainEntity;
}
/***
* 将JSON文本反序列化为主从关系的实体
* @param <T> 主实体类型
* @param jsonString JSON文本
* @param mainClass 主实体类型
* @param detailClass 存放了多个从实体在主实体中属性名称和类型
* @return
*/
public static <T> T toBean(String jsonString, Class<T> mainClass,
HashMap<String, Class> detailClass)
{
JSONObject jsonObject = JSONObject.fromObject(jsonString);
T mainEntity = JSONUtils.toBean(jsonObject, mainClass);
for (Object key : detailClass.keySet())
{
try
{
Class value = (Class) detailClass.get(key);
BeanUtils.setProperty(mainEntity, key.toString(), value);
}
catch (Exception ex)
{
throw new RuntimeException("主从关系JSON反序列化实体失败!");
}
}
return mainEntity;
}
/**
* 封装json数据从后台传输
* @param obj
*/
public static void outPutJson(Object obj){
ActionContext context = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);
try {
response.getWriter().print(obj);
} catch (IOException e) {
e.printStackTrace();
}
}
}
//测试类
String s1 = "[{id:1, pId:0, name:\"test1\" , open:true}]";
String s2 = "{id:2, pId:1, name:\"test211\" , open:true}";
String s3 = "{id:3, pId:2, name:\"test311\" , open:true}";
String s4 = "{id:4, pId:1, name:\"test411\" , open:true}";
List<String> listZtree = new ArrayList<String>();
listZtree.add(s1);
listZtree.add(s2);
listZtree.add(s3);
listZtree.add(s4);
System.out.println(JSONUtils.toJSONString(listZtree));
}
发表评论
-
字符串转日期 19080101转成1980-01-01
2014-03-21 22:54 1390public static void main(String[ ... -
excel导入数据--解析(2003与2007兼容)
2013-06-26 14:15 2854excel用java解析,开始的时候不难,但是难就难在2 ... -
java生成16位的MD5值
2013-06-17 14:26 4122这是java实现16位的MD5值的代码。很基础的东西。保 ... -
java 截取ip,获取webservice客户端ip
2012-12-20 09:33 1036小例子,保存一下。做个备份。package test; ... -
java 调用存储过程
2012-12-20 09:28 1057最近做了个项目,是调用别人的存储过程。因为文档弄错了,害的我够 ... -
jdbc
2012-06-12 11:53 998DB包装类: package com.hz.bbs.u ... -
单例模式
2012-03-27 15:49 936单例模式的俩种方式: 饿汉式 public cla ... -
正则表达式大全
2012-03-23 09:15 823匹配中文字符的正则表达式: [u4e00-u9fa5] 评注: ...
相关推荐
在java中使用json封装数据和解析json数据的DEMO.
java中封装json数据以及解析json数据需要的jar包。
不依赖任何包,封装json数据,并到页面取值!特别适合异步!
封装json数据使用的jar包 其中有6个在封装json对象时是常用的
这是layui数据表格返回的json格式的封装代码,其中有参数说明。使用于javaweb开发 ,返回的json为layui官方的json格式。
SSH封装接口返回Json数据 数据库是Mysql
java中封装json数据的包,net.sft.json包,JAVA中使用JSON进行数据传递,用于java生成json字符串,和java解析json字符串。
java中封装json数据的包,net.sft.json包,JAVA中使用JSON进行数据传递,用于java生成json字符串,和java解析json字符串
一个java处理JSON格式数据的通用类.pdf 用java处理json格式的数据,因此封装了一个class
这是在java程序开发过程中,把数据封装成json格式所依赖的第三方jar包
本篇文章主要介绍了JAVA实现JSON后端向前端传递数据,这里整理了详细的代码,具有一定的参考价值,有需要的小伙伴可以参考下。
技术:servlet+jsp 很简单的流程实例,看完实例,即会用。 工程可以直接导入myEclipse中运行。有一个java封装json数据 到 js、jsp解析java封装过来的json数据 流程实例。 适用于新生
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂...
Java灵活易用自封装http客户端,只需要三行代码即可发起一个http请求,对数据解析封装成对象,支持JSON,XML,键值对等多种数据传输格式
json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂...
在Android Studio实现MQTT对主题的订阅和数据的收发,以及将数据封装成对象传回MainActivity,方便进行数据处理,其操作信息在TextView中展示相关的数据。对相关的数据一目了然,同时,在页面中为物联网的开发提供了...
封装后的C++读取json库,以及安全的字段取值。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ...
Unity3D的http网络层封装,以json格式为数据格式,封装web网络层