- 浏览: 480891 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
zs769666156:
楼主能不能给个ER图,通过ER图来分析一下这个段代码?想好好学 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
lucky1035:
我只是想长肉 写道源代码下载过来缺少三个包,jsqlparse ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
我只是想长肉:
源代码下载过来缺少三个包,jsqlparser 14 这个哪里 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
wamdy:
多谢博主,找了许久,我看能不能做成eclipse下sql语句的 ...
基于SQL 语法解释器JSqlParser实现的SQL解析工具 -
zzl1787:
怎么下不下来啊
PDF套打模板制作(一)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy; /** * 处理json的工具类,负责json数据转换成java对象和java对象转换成json * * @author yongtree * @date 2008-11-22 上午10:47:13 * @version 1.0 */ public class JsonUtil { /** * 从一个JSON 对象字符格式中得到一个java对象 * * @param jsonString * @param pojoCalss * @return */ public static Object getObject4JsonString(String jsonString, Class pojoCalss) { Object pojo; JSONObject jsonObject = JSONObject.fromObject(jsonString); pojo = JSONObject.toBean(jsonObject, pojoCalss); return pojo; } /** * 从json HASH表达式中获取一个map,改map支持嵌套功能 * * @param jsonString * @return */ public static Map getMap4Json(String jsonString) { JSONObject jsonObject = JSONObject.fromObject(jsonString); Iterator keyIter = jsonObject.keys(); String key; Object value; Map valueMap = new HashMap(); while (keyIter.hasNext()) { key = (String) keyIter.next(); value = jsonObject.get(key); valueMap.put(key, value); } return valueMap; } /** * 从json数组中得到相应java数组 * * @param jsonString * @return */ public static Object[] getObjectArray4Json(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray(); } /** * 从json对象集合表达式中得到一个java对象列表 * * @param jsonString * @param pojoClass * @return */ public static List getList4Json(String jsonString, Class pojoClass) { JSONArray jsonArray = JSONArray.fromObject(jsonString); JSONObject jsonObject; Object pojoValue; List list = new ArrayList(); for (int i = 0; i < jsonArray.size(); i++) { jsonObject = jsonArray.getJSONObject(i); pojoValue = JSONObject.toBean(jsonObject, pojoClass); list.add(pojoValue); } return list; } /** * 从json数组中解析出java字符串数组 * * @param jsonString * @return */ public static String[] getStringArray4Json(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); String[] stringArray = new String[jsonArray.size()]; for (int i = 0; i < jsonArray.size(); i++) { stringArray[i] = jsonArray.getString(i); } return stringArray; } /** * 从json数组中解析出javaLong型对象数组 * * @param jsonString * @return */ public static Long[] getLongArray4Json(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); Long[] longArray = new Long[jsonArray.size()]; for (int i = 0; i < jsonArray.size(); i++) { longArray[i] = jsonArray.getLong(i); } return longArray; } /** * 从json数组中解析出java Integer型对象数组 * * @param jsonString * @return */ public static Integer[] getIntegerArray4Json(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); Integer[] integerArray = new Integer[jsonArray.size()]; for (int i = 0; i < jsonArray.size(); i++) { integerArray[i] = jsonArray.getInt(i); } return integerArray; } /** * 从json数组中解析出java Date 型对象数组,使用本方法必须保证 * * @param jsonString * @return * @throws ParseException */ public static Date[] getDateArray4Json(String jsonString, String dataFormat) throws ParseException { JSONArray jsonArray = JSONArray.fromObject(jsonString); Date[] dateArray = new Date[jsonArray.size()]; String dateString; Date date; for (int i = 0; i < jsonArray.size(); i++) { dateString = jsonArray.getString(i); SimpleDateFormat sf = new SimpleDateFormat(dataFormat); date = sf.parse(dateString); dateArray[i] = date; } return dateArray; } /** * 从json数组中解析出java Integer型对象数组 * * @param jsonString * @return */ public static Double[] getDoubleArray4Json(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); Double[] doubleArray = new Double[jsonArray.size()]; for (int i = 0; i < jsonArray.size(); i++) { doubleArray[i] = jsonArray.getDouble(i); } return doubleArray; } /** * 将java对象转换成json字符串 * * @param javaObj * @return */ public static String getJsonString4JavaPOJO(Object javaObj) { JSONObject json; json = JSONObject.fromObject(javaObj); return json.toString(); } /** * 将java对象转换成json字符串,并设定日期格式 * * @param javaObj * @param dataFormat * @return */ public static String getJsonString4JavaPOJO(Object javaObj, String dataFormat) { JSONObject json; JsonConfig jsonConfig = configJson(dataFormat); json = JSONObject.fromObject(javaObj, jsonConfig); return json.toString(); } /** * JSON 时间解析器具 * * @param datePattern * @return */ public static JsonConfig configJson(String datePattern) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(new String[] { "" }); jsonConfig.setIgnoreDefaultExcludes(false); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(datePattern)); return jsonConfig; } /** * 除去不想生成的字段(特别适合去掉级联的对象)+时间转换 * * @param excludes * 除去不想生成的字段 * @param datePattern * @return */ public static JsonConfig configJson(String[] excludes, String datePattern) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(excludes); jsonConfig.setIgnoreDefaultExcludes(false); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(datePattern)); return jsonConfig; } /** * 除去不想生成的字段(特别适合去掉级联的对象) * * @param excludes * 除去不想生成的字段 * @return */ public static JsonConfig configJson(String[] excludes) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(excludes); jsonConfig.setIgnoreDefaultExcludes(false); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); return jsonConfig; } }
import java.text.SimpleDateFormat; import java.util.Date; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; /** * * @author yongtree * @date 2008-11-22 上午10:54:19 * @version 1.0 */ 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) { String[] obj = {}; if (value instanceof Date[]) { SimpleDateFormat sf = new SimpleDateFormat(format); Date[] dates = (Date[]) value; obj = new String[dates.length]; for (int i = 0; i < dates.length; i++) { obj[i] = sf.format(dates[i]); } } return obj; } public Object processObjectValue(String key, 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; } }
注:附件中是本人学习时产生的源文件(所使用的jar包请自行下载)。
- jsonStudy.rar (3.4 KB)
- 描述: json学习源码(不含jar包)
- 下载次数: 82
发表评论
-
访问FreeMarker的工具类
2009-12-13 20:39 7911import java.io.File; import ja ... -
利用Axis Ant Task生成Web Service客户端代码(build.xml)
2009-03-03 12:08 3578利用Axis Ant Task生成Web Serv ... -
支付通用工具类(适用于支付及查询)
2009-03-02 12:13 1576最近十天时间都在做跟在线支付相关的开发工作,使用的 ... -
将request中的数据转换到Map中
2009-03-02 12:01 2566以下代码段是将请求request中的数据转换到Ma ... -
基于HttpClient的HttpUtils(后台访问URL)
2009-03-02 11:53 36895最近做在线支付时遇到需要以后台方式访问URL并获取 ... -
jmap + Eclipse MAT :排查内存泄漏的好工具
2008-12-13 11:06 8254当服务器应用占用了过多内存的时候,如何快速定位 ... -
JSON的序列化和反序列化
2008-08-01 16:02 8289JsonTools是一个不错的JSON序列化和反序列化 ... -
Frontend plus 2.03
2007-11-06 21:43 6263class反编译工具,已经破解。 -
Java面试题
2007-09-16 13:35 1577有两个数组,而且都已排序好,现要求将它们合并到一个新的数组c中 ... -
《Design By Contract原则与实践》精彩片断选读
2007-08-30 16:15 2116《Design By Contract原则与实践》精彩片断选 ... -
Array和Vector,HashMap的区别 [转]
2007-08-30 16:06 2383[转]自 http://blog.hunan2 ... -
Jocky--Java混淆编译器
2007-08-15 13:50 6638以下内容摘自Jocky文档 ... -
轻量级JNDI数据源创建
2007-07-30 17:06 2360程序中手工创建JNDI数据源的代码如下: java ... -
校验码图片生成
2007-07-16 17:18 2340在B/S结构项目中,为防止别心用心的用户尝试登录通常 ... -
JFreeChart API(中文)[转载]
2007-07-16 09:14 4394[转载自: http ... -
Dozer自动给对象赋值,比BeanUtils好用多了
2007-07-03 10:04 15121在日常的项目中,经常会遇到各层对象之间相互进行值传递的 ... -
Java访问LDAP示例
2007-07-02 11:16 2876在最近一个项目中需要访问LDAP(Domino 6.5),示例 ... -
判断一个IP地址是否为内网IP
2007-07-02 10:59 11605java 代码 public static bo ...
相关推荐
Java操作JSON的核心在于使用相关的库来解析、生成和操作JSON对象。本篇将详细讲解如何在Java中处理JSON,以及如何使用提供的jar包。 首先,Java处理JSON主要依赖于第三方库,如Jackson、Gson、org.json或json-...
总结来说,Java处理JSON格式数据的通用类主要是为了方便JSON数据的序列化和反序列化,以及在Java应用中便捷地操作和传输JSON数据。通过使用合适的JSON处理库和自定义工具类,可以提高开发效率,使JSON数据的处理更加...
3. JSON-P(Java API for JSON Processing):这是Java标准API的一部分,提供了一种通用的方式来处理JSON。它包括一个解析器(Parser)用于读取JSON,一个生成器(Generator)用于写入JSON,以及一个模型(Model)来...
Java 处理 JSON 格式数据的通用类 Java 处理 JSON 格式数据的通用类是 Java 语言中处理 JSON 格式数据的常用方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它具有易于人阅读和编写、易于...
在Java中,解析JSON通常涉及到将JSON字符串转换成Java对象,以便于程序能够更方便地操作这些数据。 ### JSON库的使用 文档提到使用`json-lib.jar`开发包来解析JSON。`json-lib`是一个开源的Java库,用于处理JSON...
### Java处理JSON格式数据的通用类详解 #### 概述 在现代软件开发过程中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛采用。它基于JavaScript的一个子集,采用完全独立于编程语言的...
此外,`org.apache.commons.lang3`的`commons-lang3.jar`虽然不是直接处理JSON的库,但它是Apache Commons项目的一部分,提供了一系列通用的Java工具类,有时候在处理JSON时可能会用到。 最后,`...
7. **org.apache.commons.lang3**: 这个库可能包含了一些通用的Java工具类,虽然不是直接用于JSON处理,但在处理JSON时可能会用到,比如字符串操作、类型转换等。 在Java工程中引入这些Jar包后,开发者可以轻松地在...
Java 处理 JSON 格式数据的通用类 在 Java 开发中,处理 JSON 格式数据是非常常见的操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java 提供...
4. **commons-lang.jar**:Apache Commons Lang是Apache Commons项目的一部分,提供了一系列高级的字符串处理、数学运算以及通用的Java类扩展。在JSON处理中,这个库可以辅助进行字符串的格式化、比较、解析等操作,...
这两个类提供了许多方便的方法,如获取、添加、修改和删除JSON元素,使得在Java中操作JSON变得简单易行。 例如,你可以使用`JSONObject`的构造函数创建一个空的对象,然后通过`put()`方法添加键值对: ```java ...
这个库包含了各种实用的集合类,如双向映射、堆和优先队列,以及各种通用的操作工具,如列表工厂和迭代器工具,这些在处理JSON时可能作为辅助工具使用,尤其是在进行数据转换时。 `commons-lang-2.5.jar`是Apache ...
Java中的`javajson`包,就是为了让Java开发者能够方便地处理JSON数据,将Java对象转换为JSON字符串,或者将JSON字符串解析为Java对象。 在给定的压缩包文件中,我们看到几个关键的库文件,这些是`javajson`包正常...
在实际项目中,这样的工具类可以帮助开发者快速有效地进行JSON与Java对象之间的转换。 在使用`json-lib`时,你需要导入相关的jar包,并且可以调用其提供的API来进行操作。例如,你可以使用`net.sf.json.JSONObject`...
在Java编程中,工具类(Util Classes)是程序员日常工作中不可或缺的部分,它们提供了一系列静态方法,用于执行常见的任务,如JSON解析、日期处理、字符串操作等。以下是对标题和描述中涉及的知识点的详细说明: 1....