package com.code.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.Iterator; import java.util.List; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; public class JSONHanlder { /** * 获取JSON数据 * @param key * @param source * @return */ public static String getVal(String key,String json){ if(key!=null&&key.trim().isEmpty()==false&&key.indexOf(".")!=-1&&json!=null&&json.trim().isEmpty()==false){ String[] ks = key.split("[.]"); List<String> list = Arrays.asList(ks); return getVal(json,list.iterator()); }else if(key!=null&&key.trim().isEmpty()==false){ return JSONObject.fromObject(json).get(key).toString(); } return null; } /** * 将对象转换成 JSON * @param obj * @return */ public static String getObjectAsString(Object obj){ return getObjectAsString(null,null,obj); } /** * 将对象转换成 JSON * @param obj * @return */ public static String getObjectAsString(Object ... obj){ return getObjectAsString(null,null,obj); } /** * 将对象转换成 JSON * @param parrent 时间格式 * @param excludes 不包含的字段 * @param obj * @return */ public static String getObjectAsString(String parrent,String excludes,Object... obj){ if(obj==null||obj.length==0){ return "{}"; } if(obj.length==1){ return JSONObject.fromObject(obj[0],Config.getInstance(parrent,excludes)).toString(); } Data data = new Data(); data.getRecords().addAll(Arrays.asList(obj)); return JSONObject.fromObject(data,Config.getInstance(parrent,excludes)).toString(); } /** * 将对象转换成 JSON * @param excludes * @param obj * @return */ public static String getObjectAsString(String excludes,Object... obj){ return getObjectAsString(null,excludes,obj); } /** * 将对象转换成 JSON * @param parrent * @param obj * @return */ public static String getObjectAsString(Object parrent,Object... obj){ if(parrent!=null){ return getObjectAsString(parrent.toString(),null,obj); } return getObjectAsString(null,null,obj); } /** * 获取JSON数据 * @param source * @param ks * @return */ private static String getVal(Object source,Iterator<String> ks){ if(ks.hasNext()){ source = JSONObject.fromObject(source).get(ks.next()); if(source==null){ return null; } return getVal(source,ks); } return source.toString(); } /** * JSON 配置 * @author LGF * */ public static class Config extends JsonConfig implements JsonValueProcessor { /** * 日期格式化 */ private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); /** * 默认实例 */ private static Config config = new Config(); /** * 默认构造方法 */ private Config() { this.registerJsonValueProcessor(Date.class, this); } /** * 构造方法 * @param parrent 日期格式化 * @param excludes 不包含的字段 */ private Config(String parrent,String excludes) { if(parrent!=null){ sdf = new SimpleDateFormat(parrent); } if(excludes!=null){ this.setExcludes(excludes.split(",")); } this.registerJsonValueProcessor(Date.class, this); } @Override public Object processArrayValue(Object date, JsonConfig cfg) { if(date instanceof Date){ return sdf.format(date); } return null; } @Override public Object processObjectValue(String name, Object date, JsonConfig cfg) { if(date instanceof Date){ return sdf.format(date); } return null; } /** * 获取默认实例 * @return */ public static Config getDefaultInstance(){ return config; } /** * 日期格式化实例 * @param parrent * @return */ public static Config getInstance(String parrent,String excludes){ return new Config(parrent,excludes); } } /** * JSON 数据储存实体 * @author LGF * */ public static class Data{ private List<Object> records = new ArrayList<Object>(); public List<Object> getRecords() { return records; } public void setRecords(List<Object> records) { this.records = records; } } }
相关推荐
java服务器用的json工具类,自己封装的,支持beanToJson ListToJson arrayToJson等
将集合、数组、字符串等形式转换成json格式,封装完善的json工具类
自己写的一个json工具类。
Java处理JSON的全套工具类,依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar
JsonUtil json工具类 JsonUtil json工具类
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
包含各种对象转换成json对象,还包含把对象中的属性转成hashmap 并且可以过滤为空的或者为null的对象
java转JSON工具类说明,以后看着函数说明就自己可以随便使用JSON数据了,
C++学习笔记和实践项目,实践项目包括Json工具类、设计模式的C++实现、消息队列、智能指针,linux下的并发控制工具、线程池,epoll管理器和Mysql连接池、STL容器的快捷输出工具和页面置换算法(FIFO, LRU, LFU)的...
接口调用时,数据的交互传输,有toObject,toJson,toList,toMap
json工具类,json转为对象,json转map。对象转json。便于使用
通过gson.jar, 将java对象转换成json工具类
java json工具类,支持各种json对象,json数组与json字符串转换,json格式校验等。
java解析dxf文件返回json工具类
java转json工具类说明文档.docxjava转json工具类说明文档.docx
基于googleGson的Json工具类,支持List,Object与Json互转,简单易用,Java与Android通用
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。