对于从业务逻辑层得到实体类对象集合数据,转接到页面层,需要转换成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数据格式 #### 一、简介 在现代Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java应用中,经常会遇到...
JSON转换为JAVA对象及日期格式转换处理 -
### Java 数据格式转换成 JSON 的全面解析 #### 一、JSON 概述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,最初由 Douglas Crockford 提出。它基于 JavaScript 的语法,但独立于任何编程语言...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
在处理JSON时,可能需要将JSON解析得到的数据转换成特定的对象类型,或者将Java对象转换成适合JSON格式的数据,这时候`ezmorph`就可以派上用场。它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成...
标题 "grib2json -- 将grib2文件转换为json格式" 描述了将气象学中的grib2文件转化为更便于处理和分析的json格式的过程。grib2是一种广泛用于存储气象预报、气候数据和其他环境信息的二进制文件格式。而json...
Java Bean转换为Json Schema是一种常见的数据转换操作,特别是在开发基于RESTful API的Web服务时,因为JSON Schema提供了数据验证和文档化的功能。Java Bean是Java编程中的一个概念,它是一类具有特定规则的POJO...
本示例将详细讲解如何将Java的基本数据类型转换为JSON格式,这对于Android开发者尤其重要,因为Android应用经常需要与服务器通过JSON进行数据交换。 首先,你需要引入一个JSON库来帮助完成转换。在Java中,常用的库...
首先,我们来看如何将一个Java对象数组转换成JSON格式。这通常涉及到使用第三方库如`fastjson`、`Jackson`或`org.json`等。这里以`org.json`为例进行说明: ```java import org.json.JSONArray; PricingRangeDTO[]...
本文将详细介绍如何在SpringMVC中后台转换JSON格式,以解决406错误问题。 406错误通常发生在客户端发送了Accept头,表明它期望接收某种特定类型的数据,但服务器无法提供这种类型的数据。在Ajax请求中,这个Accept...
Java数据格式转换成json.docx
Java数据格式转换成json.pdf
综合以上所述,这些库的组合使用能够帮助开发者轻松地将Java对象转换成JSON格式。在实际应用中,开发者通常会通过调用json-lib提供的方法,结合其他库如BeanUtils来实现转换。例如,使用`...
- **数据类型转换**:`Convert.ToString`方法用于将各种数据类型转换为字符串,但在处理特定类型如日期、数字时,应确保正确的格式化,避免数据丢失或不准确。 - **异常处理**:在代码中添加适当的错误处理逻辑,如...
"java 转换成json必用包"指的是这些能够帮助完成这种转换的Java库。 主要的Java JSON转换库有以下几种: 1. **Jackson**:Jackson是Java中最流行的JSON库之一,由 FasterXML 维护。它提供了多种API,如`...
在Java后端,我们可以通过上述方式将处理后的数据转换成JSON格式,然后传递给前端的Echarts进行渲染。 总结一下,JSON与Java对象之间的相互转换是Java开发中常见的任务。通过使用Gson或Jackson这样的库,我们可以...
在Java开发中,将List类型的数据转换为JSON格式是常见的操作,这主要涉及到JSON库的使用。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使得人们可以轻松地阅读和编写数据,同时也方便机器解析...
在处理JSON时,它可能会提供字符串操作、数组处理、日期时间操作等辅助功能,这些在解析或构建JSON字符串时非常有用。 3. **commons-beanutils.jar**:Apache Commons BeanUtils库简化了JavaBean对象的操作,提供了...