- 浏览: 830834 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
1、处理类:
public class DateJsonValueProcessor implements JsonValueProcessor{
private final String format="yyyy-MM-dd";
public Object processArrayValue(Object arg0, JsonConfig arg1) {
// TODO Auto-generated method stub
return null;
}
public Object processObjectValue(String key, Object value,JsonConfig arg2) {
if(value==null)
return "";
if (value instanceof Date) {
String str = new SimpleDateFormat(format).format((Date) value);
return str;
}
return value.toString();
}
}
jsonlib调用
JsonConfig cfg = new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor()) ;
JSONArray jsonArray = JSONArray.fromObject(list,cfg);
2、 首先要写一个新的类JsonDateValueProcessor如下:
view plaincopy to clipboardprint?
/**
* JSON 日期格式处理(java转化为JSON)
* @author Michael sun
*/
public class JsonDateValueProcessor implements JsonValueProcessor {
/**
* datePattern
*/
private String datePattern = "yyyy-MM-dd";
/**
* JsonDateValueProcessor
*/
public JsonDateValueProcessor() {
super();
}
/**
* @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 "";
}
}
/**
* @return the datePattern
*/
public String getDatePattern() {
return datePattern;
}
/**
* @param pDatePattern the datePattern to set
*/
public void setDatePattern(String pDatePattern) {
datePattern = pDatePattern;
}
}
测试代码:
view plaincopy to clipboardprint?
JsonBean bean = new JsonBean();
bean.setName("NewBaby");
bean.setAge(1);
bean.setBorn(new Date());
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
System.out.println("bean->json:" + jo.toString());
打印结果:bean->json:{"age":1,"born":"2010-03-10","name":"NewBaby"}
这就能得到我们想要的结果了
public class DateJsonValueProcessor implements JsonValueProcessor{
private final String format="yyyy-MM-dd";
public Object processArrayValue(Object arg0, JsonConfig arg1) {
// TODO Auto-generated method stub
return null;
}
public Object processObjectValue(String key, Object value,JsonConfig arg2) {
if(value==null)
return "";
if (value instanceof Date) {
String str = new SimpleDateFormat(format).format((Date) value);
return str;
}
return value.toString();
}
}
jsonlib调用
JsonConfig cfg = new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor()) ;
JSONArray jsonArray = JSONArray.fromObject(list,cfg);
2、 首先要写一个新的类JsonDateValueProcessor如下:
view plaincopy to clipboardprint?
/**
* JSON 日期格式处理(java转化为JSON)
* @author Michael sun
*/
public class JsonDateValueProcessor implements JsonValueProcessor {
/**
* datePattern
*/
private String datePattern = "yyyy-MM-dd";
/**
* JsonDateValueProcessor
*/
public JsonDateValueProcessor() {
super();
}
/**
* @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 "";
}
}
/**
* @return the datePattern
*/
public String getDatePattern() {
return datePattern;
}
/**
* @param pDatePattern the datePattern to set
*/
public void setDatePattern(String pDatePattern) {
datePattern = pDatePattern;
}
}
测试代码:
view plaincopy to clipboardprint?
JsonBean bean = new JsonBean();
bean.setName("NewBaby");
bean.setAge(1);
bean.setBorn(new Date());
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
System.out.println("bean->json:" + jo.toString());
打印结果:bean->json:{"age":1,"born":"2010-03-10","name":"NewBaby"}
这就能得到我们想要的结果了
发表评论
-
Jackson2.x通用工具类
2014-11-03 11:38 4894import java.io.IOException; i ... -
面试题
2013-02-27 09:04 1705从1加到100(考虑减少循环次数)使用数学公式 首先要知道 ... -
单例延迟实例化
2013-01-23 08:55 13231.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双 ... -
java中重载与重写的区别
2013-01-21 10:03 922首先我们来讲讲:重载(Overloading) ( ... -
自定义标签
2012-12-15 12:58 994package com.fsti.tag; import ... -
JAXB格式化beanToXml
2012-12-14 15:03 1250context = JAXBContext.n ... -
面向对象的特征有哪些方面?
2012-12-13 09:36 1000计算机软件系统是现实 ... -
java nio缓冲器
2012-12-05 17:03 3598缓冲器仅仅是一个" 多功能 " 的数组。可 ... -
面向对象三大特性一句话概括
2012-12-04 15:58 1549封装可以隐藏实现细节,使得代码模块化; 继承可以扩 ... -
Java序列化高级认识
2012-12-04 09:13 1061将 Java 对象序列化为二进制文件的 Java 序列化技术是 ... -
面向接口编程——提升系统多态性和可扩展性
2012-12-03 14:10 1277接口的本质 接口,在表面上是由几个没有主体代码的方 ... -
面向对象之多态
2012-11-23 19:22 868多态性(polymorphisn)是允许你将父对象设置成为和一 ... -
我对"秒杀"在技术性上的一些看法
2012-11-22 11:31 1007秒杀,是指电子商务 ... -
项目编码
2012-11-16 13:59 1146看两个项目所用的编码是否一样 Java的乱码问题: ... -
SVN错误:Attempted to lock an already-locked dir
2012-11-07 09:08 1023出现这个问题后使用“ ... -
面向对象的三个基本特征
2012-11-04 08:31 1083面向对象的三个基本特征是:封装、继承、多态。 封装 封装最 ... -
预编译防sql注入
2012-11-03 20:23 1968prepareStatement会先初始化SQL,先把这个SQ ... -
Java类与对象的初始化
2012-10-19 09:33 892Java类与对象的初始化 面试的时候,经常会遇到这样的笔试题 ... -
commons bean
2012-10-19 09:15 884这是两个javabean对象 package com.bea ... -
java工具DateUtil
2012-10-12 14:42 1050//一年内的周一 public final class Da ...
相关推荐
JSON转换为JAVA对象及日期格式转换处理 -
它可以方便地将一种类型的数据转换成另一种类型,比如将字符串转成整数,日期转成字符串等,这对于JSON数据处理的灵活性至关重要。 `JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`...
Java与JSON互相转换是开发过程中常见的需求,尤其是在服务器端与前端之间传递数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性,被广泛应用于Web服务。Java则是...
3. **兼容性问题:** 不同的JSON库可能存在差异,开发时需确保所选库与项目需求相匹配。 通过以上介绍,我们可以看到,在Java中遍历JSON树并不复杂,但确实需要理解JSON的基本结构以及所使用的库的具体用法。希望...
JSON格式基于JavaScript的一个子集,但与语言无关,因此在各种编程语言中,包括Java,都有广泛的应用。本文将深入探讨在Java中如何使用JSON,以及其在实际开发中的应用场景。 首先,Java中处理JSON的主要工具有两个...
1. **json-lib-2.2.3-jdk15.jar**:这是Json-lib库的一个版本,它是一个Java JSON处理器,支持多种Java集合和类型,如Map、List、Bean等与JSON之间的转换。通过Json-lib,你可以方便地将Java对象转换为JSON字符串,...
- 数据类型匹配:Java中的数据类型与JSON的类型不一定完全对应,如Java的日期在JSON中通常表示为字符串,需要额外处理。 - JSON的嵌套结构:如果Java对象包含嵌套的对象或数组,转换时要确保这些结构能在JSON中正确...
在Java中,我们经常需要将JSON字符串与Java对象进行相互转换,以便于数据的传输和处理。本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们...
Java与JSON的API使用是开发过程中常见的数据交互方式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们通常使用Jackson、Gson、org....
在Java编程中,处理JSON数据是常见的任务,特别是在处理多级嵌套结构时。本篇文章将详细探讨如何在Java中将JSON字符串转换为对象,特别关注多级嵌套的情况。 在Java中,我们可以使用多种库来解析和操作JSON,如...
Java中,可以使用`java.util.Date`和`SimpleDateFormat`类进行时间戳与日期的相互转换。例如: ```java long timestamp = System.currentTimeMillis(); // 获取当前时间戳 Date date = new Date(timestamp); // ...
如果需要自定义JSON与Java对象之间的映射,可以使用`@JsonSerialize`和`@JsonDeserialize`注解。例如,将日期转换为特定格式: ```java @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") ...
`setDataFormat2JAVA()`方法未给出具体实现,但根据上下文,我们可以推断这应该是设置JSON日期解析格式为Java友好的日期格式,例如`yyyy-MM-dd HH:mm:ss`,确保JSON中的日期能正确转换为Java的`Date`或`Calendar`...
json-lib-2.4-jdk15.jar是主要的JSON处理库,它支持多种Java版本,并提供了多种数据类型与JSON之间的转换,例如Java对象、集合、数组等。使用json-lib,你可以将Java对象转换成JSON字符串,或者将JSON字符串反序列...
Json-lib支持多种Java数据类型与JSON之间的转换,包括Java Bean、Collection(List、Set)、Map、Array等。它还支持将XML转换为JSON,并且可以将JSON反序列化为Java对象。 2. **commons-collections-3.2.1.jar**:...
在开发过程中,可能还需要处理嵌套的JSON结构、数组、日期和其他复杂类型。各个库都有其特定的方法来处理这些情况。例如,Jackson提供`@JsonProperty`注解来指定对象字段与JSON键的映射关系,而Gson则使用`@...
在Java中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器向客户端传输数据或反之。JSON以其易于阅读和编写,同时也易于机器解析和生成,成为了Web服务中广泛采用的标准。本篇将探讨...
这个类允许你配置JSON的序列化和反序列化行为,比如是否忽略空值,如何处理日期等。 6. `net.sf.json.xml.XMLSerializer`:如果你需要在JSON和XML之间进行转换,这个类可以派上用场。它可以将JSON对象转换为XML字符...
在Java中,为了方便地进行JSON与Java对象之间的转换,我们常常会使用到一些库,比如`json-lib`。这个库提供了丰富的API,使得我们可以轻松地将Java对象转化为JSON字符串,以及将JSON字符串反序列化为Java对象。 ###...