`

JSON工具类

阅读更多
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工具类

    java服务器用的json工具类,自己封装的,支持beanToJson ListToJson arrayToJson等

    封装完善的json工具类

    将集合、数组、字符串等形式转换成json格式,封装完善的json工具类

    json工具类

    自己写的一个json工具类。

    java json 工具类java json 工具类

    java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类

    bean,json工具类

    这个"bean,json工具类"就是为了解决这个问题而设计的,它的主要功能可能包括以下几点: 1. **Bean到JSON转换**:工具类提供了将Java Bean对象转换为JSON字符串的方法。这通常通过使用如Jackson、Gson或Fastjson等...

    asp的JSON工具类

    标题中的"asp的JSON工具类"就是为了解决这一问题,使得在ASP中读取、解析和生成JSON数据变得更加便捷。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

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

    总结来说,`Java json工具类`如`Jackson`和`ObjectMapper`,以及开发者自定义的`JacksonUtils`工具类,是Java开发中处理JSON数据的关键工具。它们能够方便地将Java对象和JSON格式数据互相转换,同时提供了一系列高级...

    json工具类源代码

    在实际开发中,使用JSON工具类时,常见的操作包括: - **序列化**:将Java对象转换为JSON字符串,这在发送HTTP请求或保存数据到文件时非常有用。 - **反序列化**:将JSON字符串解析为Java对象,便于在程序中使用...

    Json工具类

    本篇将详细介绍`Json工具类`及其相关的知识点。 一、Gson库 Gson是Google提供的一个Java库,能够将Java对象转化为JSON字符串,反之亦然。它通过简单的API设计,使得JSON数据的序列化和反序列化变得非常便捷。例如,...

    JsonUtil json工具类

    JsonUtil json工具类 JsonUtil json工具类

    json工具类,java日期转换,字符串转换等各种工具类

    1. **JSON工具类**: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们通常使用`org.json`库或`com.google.gson`库来处理JSON数据。...

    JSON工具类jar包

    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

    实体类反射非空赋值,AjaxJson工具类

    在“实体类反射非空赋值,AjaxJson工具类”这个主题中,我们将探讨如何使用反射来安全地为实体类的属性赋值,并结合Ajax与JSON进行数据的转换和交互。 首先,让我们深入了解反射的概念。Java反射API提供了Class类,...

    excel 转java 以及JSON工具类

    "Excel转Java以及JSON工具类"提供了一种便捷的方式来管理和转化结构化的数据。这种工具通常用于将Excel表格中的数据转换为Java对象或者JSON格式,方便在编程环境中进行操作和使用。 Excel是一种广泛使用的电子表格...

    XML转JSON工具类

    XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用

    JSON工具类包含对象转hashmap

    包含各种对象转换成json对象,还包含把对象中的属性转成hashmap 并且可以过滤为空的或者为null的对象

    JAVA转JSON工具类说明

    java转JSON工具类说明,以后看着函数说明就自己可以随便使用JSON数据了,

Global site tag (gtag.js) - Google Analytics