- 浏览: 145220 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jackroomage:
-HashMap 类 (除了不同步和允许使用 null ...
map,set,list,等JAVA中集合解析 -
bin_1715575332:
讲得很形象,呵呵。
Spring如何实现IOC与AOP的 -
love_miaohong:
表达的很清晰!
map,set,list,等JAVA中集合解析 -
Wuaner:
引用 4,sleep必须捕获异常,而wait,notify和n ...
sleep() 和 wait() 的区别 -
javawen:
dadsdddddd
java 异常类
Json工具类
jqGrid在处理多字段查询的时候要使用json数据,于是,参考了网上的一些写法,写了一个json工具类。其中那个时间格式化,是为了解决 json在处理java的java.util.Date出现的问题。
代码如下:
转自:http://huashui.org/post/json-utils.html
jqGrid在处理多字段查询的时候要使用json数据,于是,参考了网上的一些写法,写了一个json工具类。其中那个时间格式化,是为了解决 json在处理java的java.util.Date出现的问题。
代码如下:
@SuppressWarnings("unchecked") public class JsonUtils { /** * 从一个JSON 对象字符格式中得到一个java对象,形如: * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}} * @param object * @param clazz * @return */ public static Object getDTO(String jsonString, Class clazz) { JSONObject jsonObject = null; try { setDataFormat2JAVA(); jsonObject = JSONObject.fromObject(jsonString); } catch (Exception e) { e.printStackTrace(); } return JSONObject.toBean(jsonObject, clazz); } /** * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如: * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}, * beansList:[{}, {}, ...]} * @param jsonString * @param clazz * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class) * @return */ public static Object getDTO(String jsonString, Class clazz, Map map) { JSONObject jsonObject = null; try { setDataFormat2JAVA(); jsonObject = JSONObject.fromObject(jsonString); } catch (Exception e) { e.printStackTrace(); } return JSONObject.toBean(jsonObject, clazz, map); } /** * 从一个JSON数组得到一个java对象数组,形如: * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] * @param object * @param clazz * @return */ public static Object[] getDTOArray(String jsonString, Class clazz) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz); } return obj; } /** * 从一个JSON数组得到一个java对象数组,形如: * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...] * @param object * @param clazz * @param map * @return */ public static Object[] getDTOArray(String jsonString, Class clazz, Map map) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz, map); } return obj; } /** * 从一个JSON数组得到一个java对象集合 * @param object * @param clazz * @return */ public static List getDTOList(String jsonString, Class clazz) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for (Iterator iter = array.iterator(); iter.hasNext();) { JSONObject jsonObject = (JSONObject) iter.next(); list.add(JSONObject.toBean(jsonObject, clazz)); } return list; } /** * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性 * @param object * @param clazz * @param map 集合属性的类型 * @return * class MyBean{ * private List data; * // getters & setters * } * * class Person{ * private String name; * // getters & setters * } * * ... * * String json = "{'data':[{'name':'Wallace'},{'name':'Grommit'}]}"; * Map classMap = new HashMap(); * classMap.put( "data", Person.class ); * MyBean bean = JSONObject.toBean( JSONObject.fromObject(json), MyBean.class, classMap ); */ public static List getDTOList(String jsonString, Class clazz, Map map) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for (Iterator iter = array.iterator(); iter.hasNext();) { JSONObject jsonObject = (JSONObject) iter.next(); list.add(JSONObject.toBean(jsonObject, clazz, map)); } return list; } /** * 从json HASH表达式中获取一个map,该map支持嵌套功能 * 形如:{"id" : "johncon", "name" : "小强"} * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap * @param object * @return */ public static Map getMapFromJson(String jsonString) { setDataFormat2JAVA(); JSONObject jsonObject = JSONObject.fromObject(jsonString); Map map = new HashMap(); for (Iterator iter = jsonObject.keys(); iter.hasNext();) { String key = (String) iter.next(); map.put(key, jsonObject.get(key)); } return map; } /** * 从json数组中得到相应java数组 * json形如:["123", "456"] * @param jsonString * @return */ public static Object[] getObjectArrayFromJson(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray(); } /** * 把数据对象转换成json字符串 * DTO对象形如:{"id" : idValue, "name" : nameValue, ...} * 数组对象形如:[{}, {}, {}, ...] * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...} * @param object * @return */ public static String getJSONString(Object object) throws Exception { String jsonString = null; //日期值处理器 JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor()); if (object != null) { if (object instanceof Collection || object instanceof Object[]) { jsonString = JSONArray.fromObject(object, jsonConfig) .toString(); } else { jsonString = JSONObject.fromObject(object, jsonConfig) .toString(); } } return jsonString == null ? "{}" : jsonString; } private static void setDataFormat2JAVA() { //设定日期转换格式 JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(new String[] { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss" })); } public static void main(String[] arg) throws Exception { String s = "{status : 'success'}"; System.out.println(" object : " + JsonUtils.getJSONString(s)); } } public class JsonDateValueProcessor implements JsonValueProcessor { private String format = "yyyy-MM-dd HH:mm:ss"; public JsonDateValueProcessor() { } public JsonDateValueProcessor(String format) { this.format = format; } public Object processArrayValue(Object value, JsonConfig jsonConfig) { return process(value, jsonConfig); } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { return process(value, jsonConfig); } private Object process( Object value, JsonConfig jsonConfig ) { if (value instanceof Date) { String str = new SimpleDateFormat(format).format((Date) value); return str; } return value == null ? null : value.toString(); } public String getFormat() { return format; } public void setFormat(String format) { this.format = format; } }
转自:http://huashui.org/post/json-utils.html
发表评论
-
为什么匿名内部类参数必须为final类型(转)
2014-06-25 15:42 5451) 从程序设计语言的 ... -
Java finally语句到底是在return之前还是之后执行?
2014-05-15 16:48 641请查收附件 -
JVM调优总结 -Xms -Xmx -Xmn -Xss(转)
2012-11-26 11:18 762堆大小设置 JVM 中最大堆大小有三方 ... -
线程池ThreadPoolExecutor使用简介
2012-10-26 14:39 967一、简介 线程池类为 java.util.concurrent ... -
线程的7种状态及相互转换
2011-11-06 13:06 725先从图片开始 小小的作下解释: 1、线程的实现有两种方 ... -
Java设计模式之Observer
2011-03-24 14:15 876Java设计模式之Observer ... -
java定时器在web中的应用
2011-03-02 16:44 873好多朋友用过Windows的任务计划,也有不少程序迷自己曾写过 ... -
使用activeMQ实现jms(转)
2010-11-03 16:59 999一:jms介绍 ... -
Jms基础知识整理(转)
2010-11-03 16:55 604详情见附件。 转载自:http://www.iteye.co ... -
java 线程Thread.Sleep详解(转)
2010-10-26 14:43 1028我们可能经常会用到 Thread.Sleep 函数来使线程挂起 ... -
在Eclipse中使用JUnit4进行单元测试(转)
2010-09-01 14:23 673详情见附件 转载自:http://blog.csdn. ... -
AOP是什么?(转)
2010-07-21 11:18 755为什么要区分J2EE容 ... -
J2EE 中的13种技术规范
2010-07-13 18:06 779J2EE 平台由一整套服务( Services ... -
XML解析技术研究(转)(二)
2010-07-12 15:51 7704、结论 随着XML的广泛应用,XML解析技术作为XML ... -
XML解析技术研究(转)(一)
2010-07-12 15:29 1147摘要 : XML 作为过去十年中出现的最流行的技术之一,得到了 ... -
sleep() 和 wait() 的区别
2010-07-09 18:06 954这两者的施加者是有本质区别的. sleep()是让某个线程暂停 ... -
Struts2操作Request、Session和Application对象 (转)
2010-05-06 16:48 1005Strtus2通常情况下使用以下两种方式来访问上述三种对象,即 ... -
jfreechart学习总结(转)
2010-04-22 17:37 1163自己最近学习了JfreeChart的使用,觉得这个冬冬的功能非 ... -
Java对象与json对象的转行
2010-04-19 23:31 1483jsontools 工具包可以将Java对象转化成json对象 ... -
Java注解(Annotation)(转)
2010-04-09 11:53 1670(1) Annotation(注释)是JDK5.0及以后版本引 ...
相关推荐
总的来说,`JAVA-JSON工具转换类`这个主题涵盖了JSON数据处理的核心部分,包括JSON的序列化和反序列化,以及数据类型的转换。通过`json-lib`和`ezmorph`这两个库,开发者可以轻松地在Java程序中处理JSON数据,而`...
json工具类,json转为对象,json转map。对象转json。便于使用
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...
java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
工具类---实现实体类与Json的转换
总结起来,`Json 转换工具类`即`Newtonsoft.Json`库,它是.NET开发中处理JSON数据的强大工具,提供了丰富的API用于JSON的序列化和反序列化,大大简化了开发者的任务。无论是在服务器端还是客户端,`Newtonsoft.Json`...
这个"bean,json工具类"就是为了解决这个问题而设计的,它的主要功能可能包括以下几点: 1. **Bean到JSON转换**:工具类提供了将Java Bean对象转换为JSON字符串的方法。这通常通过使用如Jackson、Gson或Fastjson等...
java服务器用的json工具类,自己封装的,支持beanToJson ListToJson arrayToJson等
将集合、数组、字符串等形式转换成json格式,封装完善的json工具类
"Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...
对象与json相互转换,map转json,json转map等基础工具类
在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具类。这个"json 转化工具类"就是为了解决这样的问题。 在Java中,有很多流行的库可以处理JSON...
标题中的"asp的JSON工具类"就是为了解决这一问题,使得在ASP中读取、解析和生成JSON数据变得更加便捷。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
本篇将详细介绍如何使用Java工具类进行XML与JSON的转换,并介绍相关知识。 首先,`pom依赖.txt`文件中应包含的是Maven项目的依赖信息。在Java项目中,我们需要引入处理XML和JSON转换的库。通常,我们使用如Jackson...
包含各种对象转换成json对象,还包含把对象中的属性转成hashmap 并且可以过滤为空的或者为null的对象
可以让xml格式数据转换成json格式数据 让json格式数据转换为xml格式数据 可以利用json转实体类的方法做到xml转实体类
JSON解析工具类是为了帮助开发者有效地处理JSON字符串,验证其有效性,并从中提取所需的数据。 在Java开发中,有许多流行的JSON库可供选择,例如Gson、Jackson、org.json和Fastjson等。这些库提供了方便的API,可以...