`
低调衬着那一抹妖娆
  • 浏览: 29943 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java与json互转(日期处理)

阅读更多

1、jar包

    commons-beanutils-xxx.jar

    commons-collections-xxx.jar

    commons-lang-xxx.jar

    commons-logging-xxx.jar

    ezmorph-xxx.jar

    json-lib-xxx.jar

 

2、java代码及测试类

package com.zhaolp.json;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午10:28:02
 * 功能:json测试基类
 */
public class JsonBaseBean implements Serializable {
	private static final long serialVersionUID = 2425694623661801705L;
	private Date monitorDate;//时间
	private String cityCode;//城市代码
	private double data;
	private List<String> cityCodeList;
	public Date getMonitorDate() {
		return monitorDate;
	}
	public void setMonitorDate(Date monitorDate) {
		this.monitorDate = monitorDate;
	}
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	public double getData() {
		return data;
	}
	public void setData(double data) {
		this.data = data;
	}
	public List<String> getCityCodeList() {
		return cityCodeList;
	}
	public void setCityCodeList(List<String> cityCodeList) {
		this.cityCodeList = cityCodeList;
	}
}

 

package com.zhaolp.json;

import java.util.Date;

import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;
import net.sf.json.util.PropertyFilter;

import org.apache.commons.lang3.StringUtils;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午10:39:27
 * 功能:json与javaBean互转
 */
public class Json2JavaBean {
	private String dateFormat = "yyyy-MM-dd";
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 上午10:42:39
	 * @param json
	 * @return java 对象
	 * 功能:json转java对象
	 */
	public JsonBaseBean jsonToJava(String json){
		JsonBaseBean jsonBaseBean = null;
		try {
			if(StringUtils.isNotBlank(json)){
				//处理json时间属性格式
				JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[]{dateFormat}));
				JSONObject jsonObj = JSONObject.fromObject(json);
				jsonBaseBean = (JsonBaseBean)JSONObject.toBean(jsonObj, JsonBaseBean.class);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jsonBaseBean;
	}
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 上午11:04:26
	 * @param jsonBaseBean
	 * @return json字符串
	 * 功能:java对象转json
	 */
	public String javaToJson(JsonBaseBean jsonBaseBean){
		String json = null;
		try {
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(dateFormat));
	        JSONObject array = JSONObject.fromObject(jsonBaseBean, jsonConfig);
	        json = array.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}
	/**
	 * @author zhaolunpeng
	 * @date 2016-1-6 下午1:35:06
	 * @param jsonBaseBean
	 * @return json字符串
	 * 功能:java对象转json过滤属性
	 */
	public String jsonFilter(JsonBaseBean jsonBaseBean){
		String json = null;
		try {
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(dateFormat));
			//过滤属性
	        jsonConfig.setJsonPropertyFilter(new PropertyFilter() { 
	            public boolean apply(Object source, String name, Object value) { 
	                if ("cityCodeList".equals(name)) { 
	                    return true; 
	                } 
	                return false; 
	            } 
        	});
	        JSONObject array = JSONObject.fromObject(jsonBaseBean, jsonConfig);
	        json = array.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}
}

 

package com.zhaolp.json;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author zhaolunpeng
 * @date 2016-1-6 上午11:12:19
 * 功能:测试类
 */
public class JsonTest {
	public static void main(String[] args) {
		//创建一个JsonBaseBean
		JsonBaseBean jsonBaseBean = new JsonBaseBean();
		jsonBaseBean.setCityCode("120001");
		jsonBaseBean.setData(1.22);
		jsonBaseBean.setMonitorDate(new Date());
		List<String> list = new ArrayList<String>();
		list.add("130001");
		list.add("140001");
		jsonBaseBean.setCityCodeList(list);
		//调用转换方法 对象转json
		Json2JavaBean json2JavaBean = new Json2JavaBean();
		String json = json2JavaBean.javaToJson(jsonBaseBean);
		System.out.println("json:"+json);
		//json转java对象
		JsonBaseBean aaa = json2JavaBean.jsonToJava(json);
		System.out.println(aaa.getMonitorDate());
		//过滤属性
		String jsonFilter = json2JavaBean.jsonFilter(jsonBaseBean);
		System.out.println(jsonFilter);
	}
}

 java转json日期处理类

package com.zhaolp.json;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
* JSON 日期格式处理(java转化为JSON)
* @author zhaolunpeng
*/  
public class JsonDateValueProcessor implements JsonValueProcessor {
	 /**
     * datePattern
     */ 
    private String datePattern; 
    /**
     * @param format
     */ 
    public JsonDateValueProcessor(String format) { 
        super(); 
        this.datePattern = format; 
    } 
 
    /**
     * @param value
     * @param jsonConfig
     * @return Object
     */ 
    public Object processArrayValue(Object value, JsonConfig jsonConfig) { 
        return process(value); 
    } 
 
    /**
     * @param key
     * @param value
     * @param jsonConfig
     * @return Object
     */ 
    public Object processObjectValue(String key, Object value, 
            JsonConfig jsonConfig) { 
        return process(value); 
    } 
 
    /**
     * process
     * @param value
     * @return
     */ 
    private Object process(Object value) { 
        try { 
            if (value instanceof Date) { 
                SimpleDateFormat sdf = new SimpleDateFormat(datePattern, 
                        Locale.UK); 
                return sdf.format((Date) value); 
            } 
            return value == null ? "" : value.toString(); 
        } catch (Exception e) { 
            return ""; 
        } 
 
    } 
}

 

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包4

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包11

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包6

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包101

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包9

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包5

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包8

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包10

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包1

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包3

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包2

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包7

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    Java资源包01

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    JavaScript完全自学宝典 源代码

    示例描述:介绍JavaScript与Microsoft Office互操作的方法。 14.1.html 使用JavaScript向Word中写入内容。 14.2.html 使用JavaScript从Word中读取内容。 14.3.html 使用JavaScript向Excel文件中写入内容...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--BitMap、Drawable、inputStream及byte[] 互转 |--ContentProvider内容提供者定义 |--DatePicker日期控件 |--desktop |--Dialog之位置的挪动与控制 |--Dialog实现无标提栏及自定义风格 |--Dialog风格Activity的...

    ZendFramework中文文档

    JSON 7.8.4.6. 转向器(Redirector) 7.8.4.6.1. 介绍 7.8.4.6.2. 基础用例 7.8.4.7. ViewRenderer 7.8.4.7.1. 介绍 7.8.4.7.2. API 7.8.4.7.3. 基础用法示例 7.8.4.7.4. 高级用法示例 7.8.5. 编写自己的...

Global site tag (gtag.js) - Google Analytics