`

JAVA时间类型转换成JSON格式处理

阅读更多

对于从业务逻辑层得到实体类对象集合数据,转接到页面层,需要转换成JSON字符串格式,有利于在页面上进行处理,或者转向给别的系统和对方使用。在某个过程中,实体类集合对象转换成JSON字符串格式会出现不是你想要的数据格式,如时间类型的会转换成如下格式:

"time":{"date":2,"day":2,"hours":12,"minutes":17,"month":11,"nanos":0,"seconds":24,"time":1417493844000,"timezoneOffset":-480,"year":114},"transType":0}

 而不是:

"time":"2012-09-09 18:29:11"

 这样的话需要借助帮助类来实现时间的格式化。

 

 

import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
 * Date 时间格式转换json格式需要进行格式化转变
 * @author SONG
 *
 */
public class JsonDateValueProcessor implements JsonValueProcessor {

	private String format = "yyyy-MM-dd HH:mm:ss";

	public JsonDateValueProcessor()
	{
	}

	public JsonDateValueProcessor(String format)
	{
		this.format = format;
	}

	public Object processArrayValue(Object value, JsonConfig jsonConfig)
	{
		String[] obj = {};
		if (value instanceof Date[])
		{
			SimpleDateFormat sf = new SimpleDateFormat(format);
			Date[] dates = (Date[]) value;
			obj = new String[dates.length];
			for (int i = 0; i < dates.length; i++)
			{
				obj[i] = sf.format(dates[i]);
			}
		}
		return obj;
	}

	public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)
	{
		if (value instanceof Date)
		{
			String str = new SimpleDateFormat(format).format((Date) value);
			return str;
		}
		return value;
	}

	public String getFormat()
	{
		return format;
	}

	public void setFormat(String format)
	{
		this.format = format;
	}
}

 

import java.sql.Timestamp;
import java.util.List;
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
import com.sinocarbon.base.dao.BaseAction;
import com.sinocarbon.base.util.JsonDateValueProcessor;
import com.sinocarbon.ets.service.QueryDiskService;

public class QueryDiskAction extends BaseAction{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Resource
	private QueryDiskService queryDiskService;
	
	public String query()throws Exception{
		List list = queryDiskService.listAll();
		JsonConfig jsonConfig = new JsonConfig();
                //实体类里面存在的时间类型为Timestamp,之前放的Date,解析格式还是原来那样,后来换成这个好使。
		jsonConfig.registerJsonValueProcessor(Timestamp.class, new JsonDateValueProcessor());
		JSONArray jsonStr = JSONArray.fromObject(list, jsonConfig);
		request.setAttribute("jsonStr", jsonStr);
		logger.info("~~~~~~~~~~~~~~~~~~:"+jsonStr);
		return SUCCESS; 
	}
}

 这里只记录了问题的解决办法,里面的原理和概念都没说到。json数据传输用了有几年时间,大家可以参考网上的资料多看看。有什么问题可以留言,一起讨论下。

 

 

分享到:
评论

相关推荐

    java-任何类型转换成json数据格式

    ### Java中任何类型转换成JSON数据格式 #### 一、简介 在现代Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java应用中,经常会遇到...

    JSON转换为JAVA对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    Java数据格式转换成json

    ### Java 数据格式转换成 JSON 的全面解析 #### 一、JSON 概述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

    使用json-lib将java对象转换成json字符串

    标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...

    JAVA-JSON工具转换类

    在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...

    grib2json--grib2文件转换成json格式

    标题 "grib2json -- 将grib2文件转换为json格式" 描述了将气象学中的grib2文件转化为更便于处理和分析的json格式的过程。grib2是一种广泛用于存储气象预报、气候数据和其他环境信息的二进制文件格式。而json...

    Java bean转换为Json Schema

    Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...

    Java基本数据转换成Json代码

    本示例将详细讲解如何将Java的基本数据类型转换为JSON格式,这对于Android开发者尤其重要,因为Android应用经常需要与服务器通过JSON进行数据交换。 首先,你需要引入一个JSON库来帮助完成转换。在Java中,常用的库...

    java-对象数组转换为json

    首先,我们来看如何将一个Java对象数组转换成JSON格式。这通常涉及到使用第三方库如`fastjson`、`Jackson`或`org.json`等。这里以`org.json`为例进行说明: ```java import org.json.JSONArray; PricingRangeDTO[]...

    SpringMVC中后台转换json格式

    本文将详细介绍如何在SpringMVC中后台转换JSON格式,以解决406错误问题。 406错误通常发生在客户端发送了Accept头,表明它期望接收某种特定类型的数据,但服务器无法提供这种类型的数据。在Ajax请求中,这个Accept...

    Java数据格式转换成json.docx

    Java数据格式转换成json.docx

    Java数据格式转换成json.pdf

    Java数据格式转换成json.pdf

    javabean转换为json格式用到的所有包

    综合以上所述,这些库的组合使用能够帮助开发者轻松地将Java对象转换成JSON格式。在实际应用中,开发者通常会通过调用json-lib提供的方法,结合其他库如BeanUtils来实现转换。例如,使用`...

    DataSet类型数据转换成Json串

    - **数据类型转换**:`Convert.ToString`方法用于将各种数据类型转换为字符串,但在处理特定类型如日期、数字时,应确保正确的格式化,避免数据丢失或不准确。 - **异常处理**:在代码中添加适当的错误处理逻辑,如...

    java 转换成json必用包

    "java 转换成json必用包"指的是这些能够帮助完成这种转换的Java库。 主要的Java JSON转换库有以下几种: 1. **Jackson**:Jackson是Java中最流行的JSON库之一,由 FasterXML 维护。它提供了多种API,如`...

    Json与java对象之间相互转换源码

    在Java后端,我们可以通过上述方式将处理后的数据转换成JSON格式,然后传递给前端的Echarts进行渲染。 总结一下,JSON与Java对象之间的相互转换是Java开发中常见的任务。通过使用Gson或Jackson这样的库,我们可以...

    java服务器将list类型数据转换成json格式需要的包

    在Java开发中,将List类型的数据转换为JSON格式是常见的操作,这主要涉及到JSON库的使用。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们可以轻松地阅读和编写数据,同时也方便机器解析...

    java json转换所需jar包

    在处理JSON时,它可能会提供字符串操作、数组处理、日期时间操作等辅助功能,这些在解析或构建JSON字符串时非常有用。 3. **commons-beanutils.jar**:Apache Commons BeanUtils库简化了JavaBean对象的操作,提供了...

Global site tag (gtag.js) - Google Analytics