`
低调衬着那一抹妖娆
  • 浏览: 30894 次
  • 性别: 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 ""; 
        } 
 
    } 
}

 

分享到:
评论

相关推荐

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; &lt;artifactId&gt;json-lib...

    Java对象和JSON互转换利器-Gson

    Java对象与JSON之间的转换在现代Web开发中至关重要,因为它们是服务器端数据处理和客户端交互的主要格式。Gson是Google提供的一个开源库,专门用于在Java对象和JSON数据之间进行无缝转换。它以其强大、灵活和高效而...

    java与json互相转换的jar包

    Java则是一种强大的后端编程语言,两者之间的互转能够帮助我们有效地处理数据。以下是对给定的jar包文件及其在Java与JSON转换中的作用的详细解释: 1. **json-lib-2.4-jdk15.jar.zip**:这是JSON库的核心,用于实现...

    json_lib使用实例:java对象与json字符串的互转

    `json-lib`还提供了XML与JSON的互转功能,这对于需要在两者间切换的场景非常有用。 总结来说,`json-lib`是一个强大且易用的工具,它使得在Java中处理JSON变得简单。通过其提供的API,我们可以方便地进行JSON字符...

    json与java对象互转

    ### JSON与Java对象互转:深入理解与实践 在现代软件开发中,JSON(JavaScript Object Notation)作为数据交换的标准格式之一,其轻量级、易于读写的特点使其成为跨平台数据传输的首选。Java作为一种广泛使用的编程...

    使用jackson完成json与Java对象互转

    本文将详细介绍如何使用Jackson库进行JSON与Java对象的互转。 首先,我们需要引入Jackson库的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; ...

    java与json之间的互操作

    Java与JSON之间的互操作是指在Java程序中对JSON(JavaScript Object Notation)数据进行解析、序列化和反序列化的过程。JSON是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在Java中,...

    json和java互转demo(jackson)

    在本项目中,`jackson-test`可能是一个包含测试代码的模块,用于演示如何使用Jackson进行JSON和Java对象的互转。 1. **安装Jackson库** 在Java项目中使用Jackson,通常需要将以下Maven依赖添加到`pom.xml`文件中:...

    使用jackson完成json与java对象的互相转换实例

    Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...

    java 对象与json字符串互相转换工具类

    Java提供了多种库来实现对象与JSON的互转,如Jackson、Gson、Fastjson等。这里我们将主要讨论这些工具类的使用方法以及它们在处理对象到JSON字符串和反向转换时的关键知识点。 1. Jackson库: Jackson是Java中非常...

    javabean和json互转所需的6个包

    JavaBean和JSON之间的转换在Java开发中非常常见,特别是在处理前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JavaBean则是一种符合...

    Java对象和Json对象互转采购的Gson方式所需要的jar包

    本篇将详细介绍使用Gson进行Java对象和Json对象互转的方法以及所需的jar包。 首先,要使用Gson库,你需要在项目中引入相关的jar包。根据描述,这里提供了一个压缩包,包含四个所需的jar包。这些jar包通常包括Gson的...

    javabean和json互转所需包

    JavaBean和JSON之间的转换在Java开发中非常常见,特别是在处理前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JavaBean则是一种符合...

    json与对象互转,json数组与对象数组互转

    标题“json与对象互转,json数组与对象数组互转”涉及到的是如何在JavaScript中将JSON字符串和JavaScript对象之间进行转换,以及JSON数组和JavaScript对象数组之间的转换。在JavaScript中,有内置的全局函数`JSON....

    json和java互转完整项目demo(jackson)

    该项目“json和java互转完整项目demo(jackson)”显然是一个使用Jackson库进行JSON与Java对象之间转换的示例项目。Jackson库的核心组件包括`ObjectMapper`,它是整个库的中心,负责JSON与Java对象之间的转换工作。 1...

    gson解析器实现json和实体类对象互转源代码

    在本文中,我们将深入探讨Gson解析器的工作原理以及如何利用它来实现JSON和实体类对象之间的互转。 1. **Gson简介** Gson库的核心功能在于提供了一种直观的方式来将Java对象转换为它们对应的JSON表示,反之亦然。...

    利用Google Gson实现JSON字符串和对象之间相互转换

    Google Gson库提供了一个强大的工具,使得Java对象与JSON字符串之间的转换变得简单易行。本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过...

    json转换json-lib

    4. **XML与JSON互转**: json-lib还提供了XML与JSON之间的转换功能,这对于那些需要在XML和JSON间切换的项目很有帮助。 5. **性能和兼容性**: 讨论可能包括json-lib与其他JSON库(如Gson、Jackson、Fastjson等)...

    json相关的6个jar包

    - Gson是Google提供的库,同样实现了JSON与Java对象的互转。 - 使用`Gson()`实例来转换对象,例如`gson.toJson(object)`和`gson.fromJson(jsonString, ClassType.class)`。 5. **org.json库** - 这是一个小型的...

    Jackson实现Object对象与Json字符串的互转

    在本篇文章中,我们将深入探讨如何使用Jackson库实现Object对象与Json字符串的互转。 首先,让我们了解Jackson库的核心组件。Jackson库主要有三个核心模块: 1. `fasterxml.jackson.databind`:这是数据绑定模块,...

Global site tag (gtag.js) - Google Analytics