import java.sql.Timestamp;
import java.util.Collection;
import java.util.Date; import org.soul.util.json.JsonDateValueProcessor;
import org.soul.util.json.JsonIgnorePropertyFilter; import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig; /**
* 依赖net.sf.json包(json-lib-2.4-jdk?.jar)
*/
public abstract class JsonUtils {
private static JsonConfig config = new JsonConfig();
private static JsonIgnorePropertyFilter ifp = new JsonIgnorePropertyFilter();
static {
config.setJsonPropertyFilter(ifp);
config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
config.registerJsonValueProcessor(java.sql.Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
config.registerJsonValueProcessor(Timestamp.class, new JsonDateValueProcessor("yyyy-MM-dd hh:mm:ss"));
} /**
* 格式化对象成为json对象
* @param o 目标对象
* @param ignoreFields 忽略字段 如: name,value等
* @param ignoreCls 忽略指定类及超类的其所属性
* @param ignoreNull 忽略null值
* @param ignoreColl 忽略集合属性
* @return
*/
public static JSONObject fromObject(Object o,String[] ignoreFields,Class<?> ignoreCls,boolean ignoreNull,boolean ignoreColl){
ifp.setIgnoreCls(ignoreCls);
ifp.setIgnoreColl(ignoreColl);
ifp.setIgnoreNull(ignoreNull);
ifp.getFields().clear();
if(ignoreFields!=null && ignoreFields.length>0){
ifp.addFields(ignoreFields);
}
JSONObject resultJson = null;
try {
resultJson = JSONObject.fromObject(o,config);
} catch (Exception e) {
e.printStackTrace();
}
return resultJson;
} /**
* 格式化集合成为json集合对象
* @param o 目标集合
* @param ignoreFields 忽略字段 如: name,value等
* @param ignoreCls 忽略指定类及超类的其所属性
* @param ignoreNull 忽略null值
* @param ignoreColl 忽略集合属性
* @return
*/
public static JSONArray fromObject(Collection<?> o,String[] ignoreFields,Class<?> ignoreCls,boolean ignoreNull,boolean ignoreColl){
ifp.setIgnoreCls(ignoreCls);
ifp.setIgnoreColl(ignoreColl);
ifp.setIgnoreNull(ignoreNull);
ifp.getFields().clear();
if(ignoreFields!=null && ignoreFields.length>0){
ifp.addFields(ignoreFields);
}
JSONArray resultJson = null;
try {
resultJson = JSONArray.fromObject(o,config);
} catch (Exception e) {
e.printStackTrace();
}
return resultJson;
}
}

JSON工具类的更多相关文章

  1. 用jackson封装的JSON工具类

    package hjp.smart4j.framework.util; import com.fasterxml.jackson.databind.ObjectMapper; import org.s ...

  2. Code片段 : .properties属性文件操作工具类 & JSON工具类

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 j ...

  3. Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加

    package com.aherp.framework.util; import java.lang.reflect.Array;import java.lang.reflect.Method;imp ...

  4. Json工具类 - JsonUtils.java

    Json工具类,提供Json与对象之间的转换. 源码如下:(点击下载 - JsonUtils.java . gson-2.2.4.jar ) import java.lang.reflect.Type ...

  5. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  6. Spring统一返回Json工具类,带分页信息

    前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...

  7. 强大的Java Json工具类

    转自: https://blog.csdn.net/u014676619/article/details/49624165 import java.io.BufferedReader; import ...

  8. HttpClientUntils工具类的使用测试及注意事项(包括我改进的工具类和Controller端的注意事项【附 Json 工具类】)

    HttpClient工具类(我改过): package com.taotao.httpclient; import java.io.IOException; import java.net.URI; ...

  9. json工具类(三)——net包

    package com.ruoyi.common.utils.json; import java.util.List; import java.util.Map; import net.sf.json ...

  10. JSON工具类的构建(后端版本)

    前言 在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端). 而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端). 优缺点 前后端耦 ...

随机推荐

  1. 【WebApi系列】浅谈HTTP

    [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...

  2. DLL导出全局变量在多个DLL中调用

    =================================版权声明================================= 版权声明:原创文章 禁止转载  请通过右侧公告中的“联系邮 ...

  3. android 基础04-BroadCastReceiver

    Android 系统中的广播(BroadCast) 是组件与组件进行的一种可跨线程的通信方式.类似于 广播者-订阅者(publish-subscribe) 的实现,当系统或者某个应用的状态发生改变时, ...

  4. Core Graphics框架是Quartz的核心,也是内容描画的基本接口。

    Core Graphics框架是Quartz的核心,也是内容描画的基本接口.

  5. jsp页面中的$(param.xxx)

    $(param.user)相当于<%=request.getParameter("user")%> $(paramValues.favorites[0])相当于< ...

  6. 深入剖析Java编程中的中文问题及建议最优解决方法

    摘录自:http://fafeng.blogbus.com/logs/3062998.html http://www.blogbus.com/fafeng-logs/3063006.html 深入剖析 ...

  7. xampp使用中mysql端口被占用问题的解决方案

    如果在安装XAMPP前本机已经安装了mysql,并且添加了Windows服务中 使用xampp时,两个Mysql在Windows服务中有冲突 这意味着你之前在电脑上使用过mysql,路径.端口都被占用 ...

  8. linux_网站计量单位

    IP 独立IP数,是不同IP地址的计算机访问网站时被计算的总次数,独立IP数是衡量网站流量的一个重要指标,一般一天内相同IP地址的客户端访问网页只被计算为一次,记录独立IP的时间为一天或一个月,目前通 ...

  9. js_1_变量类型

    js中有哪些变量类型? 数字(包括int和float),字符串,数组(字典,js没有字典类型,把字典看成一个对象) 如何把字符转成数字呢? obj.parseInt()         //  转化成 ...

  10. 爬虫_url去重策略

    如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ...