`
uule
  • 浏览: 6358954 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

Date类型字段转换为json时的问题

    博客分类:
  • JSON
阅读更多

问题:

         在将java.util.Date 类型字段转为json时,获取时取到的日期为[object object] ,无法进行操作。

举例:

Tariff bean = new Tariff();
bean.setName("Robby");
bean.setAge(1);
bean.setBorn(new Date());

 当使用JSONObject jsonObject = JSONObject.fromObject(bean)转换为json时,jsp页面接收到的born日期类型为[object object],无法获取具体日期!

 

解决方法:添加自定义的日期格式转化类

 

package com.techson.himsnanhwa.admin.util;

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

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

public class JsonDateValueProcessor implements JsonValueProcessor {

	private String format ="yyyy-MM-dd";
	
	public Object processArrayValue(Object value, JsonConfig config) {
		return process(value);
	}

	public Object processObjectValue(String key, Object value, JsonConfig config) {
		return process(value);
	}
	
	private Object process(Object value){
		
		if(value instanceof Date){
			SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);
            return sdf.format(value);
		}
		return value == null ? "" : value.toString();
	}
}

 类名JsonDateValueProcessor自定义,继承的JsonValueProcessor是固定写法。

 

调用:

Tariff bean = new Tariff();
bean.setName("Robby");
bean.setAge(1);
bean.setBorn(new Date());

JsonConfig jsonConfig = new JsonConfig();   //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法
jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());

JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
System.out.println("json:" + jo.toString());

结果:json:{"age":1,"born":"2011-05-31","name":"Robby"}

 也可以通过为日期转换类加上构造函数,使用

jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));

 这种方式获取。

 

参考:http://blog.sina.com.cn/s/blog_5f1fe33f0100jibg.html

分享到:
评论
2 楼 晴天why 2018-03-29  
可以用,感谢!
1 楼 lixueyong87 2013-09-28  
感觉很有用,我现在试了下,感觉可以。

相关推荐

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...

    将对象转换为json串的工具类.docx

    这个工具类虽然简单,但涵盖了大部分常见类型的转换,对于日常开发工作,尤其是需要快速将Java对象转换为JSON字符串时,它提供了很大的便利。然而,对于更复杂的情况,例如处理嵌套对象或处理自定义序列化逻辑,可能...

    Springboot DTO字符字段与日期字段的转换问题.docx

    当前端提交包含日期字符串的JSON时,如`"birthday":"1983-03-18"`,Spring Boot默认会将这个字符串解析为时间戳,而不是转换为Date对象。因此,在响应到前端时,`birthday`字段显示为时间戳,而不是日期字符串。 ...

    spring boot @ResponseBody转换JSON 时 Date 类型处理方法【两种方法】

    本篇文章主要介绍了两种处理Spring Boot中`@ResponseBody`转换JSON时Date类型的方法:Jackson和FastJson。 ### Jackson处理Date类型 Jackson是Spring Boot默认的JSON库,它提供了多种方式来格式化Date字段。 ####...

    java.util.Date到Json日期

    在Java中处理日期并将其转换为JSON格式是常见的需求,尤其是在进行网络传输或存储操作时。本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,从而实现更加标准化的数据交换。 #### 一...

    json格式转换demo

    在处理JSON时,尤其是在涉及到日期(Date)对象时,可能会遇到一些转换问题。本示例“json格式转换demo”将解决这些常见的问题。 首先,让我们深入了解一下JSON的基本结构。JSON基于JavaScript的一个子集,主要由...

    XStream的Date转换 @XStreamConverter DateConverter

    在这个测试中,我们创建了一个`MyClass`,其中包含一个Date字段。我们使用XStream实例,注册自定义的Date转换器,然后将对象序列化成XML并打印出来。接着,我们反序列化XML回`MyClass`对象,确保日期的序列化和反...

    将对象转换为json串的工具类.pdf

    根据字段类型,如基本类型、Integer、Long、Float、Double、String或Date,它会以不同的方式将字段值转化为JSON格式。如果字段类型是其他复杂对象,会递归调用`obj2Str`进行转换。最后,移除最后一个逗号,关闭大...

    json转换工具,支持日期

    在Java开发中,经常需要将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。`json-lib`是一个流行的Java库,用于处理JSON格式,它提供了多种类型到JSON的转换功能,包括日期和时间。 本文将详细介绍...

    使用Java反射机制将Map转换为Java对象,支持Boolean、Date类型

    在本主题中,我们将深入探讨如何使用Java反射机制将Map转换为Java对象,同时支持Boolean和Date类型的数据。这种转换在处理JSON到对象的映射或者数据库查询结果到对象的映射时非常有用。 首先,我们需要了解Java中的...

    后台日期类型转json字符串传到页面

    然而,当处理包含日期类型的Java对象时,直接转换成JSON可能会出现不符合预期的格式问题。 例如,`Student`类中的`birthday`字段是一个`Date`类型,当使用如`net.sf.json.JSONArray`这样的库将Java对象转换为JSON时...

    springboot DTO字符字段与日期字段的转换问题

    默认情况下,Spring Boot 不会自动转换字符字段与日期字段,这将导致在前端提交 JSON 数据时,日期字段无法正确转换为日期类型。因此,本文将详细介绍 Spring Boot DTO 字符字段与日期字段的转换问题,并提供解决...

    springboot json时间格式化处理的方法

    具体来说,`@JsonFormat`注解可以应用在Java Bean的属性上,用于在序列化(将Java对象转换为JSON字符串)和反序列化(将JSON字符串转换为Java对象)过程中指定日期时间的格式。例如,可以在一个实体类的日期属性上...

    java利用json-lib操作json

    需要注意的是,日期类型在转换时默认会显示为null,因为json-lib默认不处理Date对象,如果需要正确序列化日期,可能需要额外的配置或自定义转换器。 4. **自定义转换** 对于更复杂的Java对象,例如包含嵌套对象...

    复杂的JSON解析

    GSON是Google开发的一个Java库,用于将Java对象转换为JSON字符串,以及将JSON数据转换回等效的Java对象,从而简化了JSON解析和序列化的过程。 在处理复杂的JSON数据时,GSON的强大功能得以体现。JSON结构通常包括...

    关于Json-lib对日期型的转换解决方法

    当我们在使用Json-lib处理包含日期的对象时,可能会遇到日期类型转换的问题。 这篇博客"关于Json-lib对日期型的转换解决方法"探讨了如何在使用Json-lib时正确地处理日期类型。通常,Json-lib会将日期转换为Unix...

    Spring boot如何配置请求的入参和出参json数据格式

    在这个配置中,我们找到了所有的 `MappingJackson2HttpMessageConverter`(负责JSON转换的类),然后注册了我们的 `DateEditor` 到 `ObjectMapper` 中,这样JSON反序列化时就会使用这个编辑器处理日期字段。...

    把JSON数据格式转换为Python的类对象方法详解(两种方法)

    `pydantic`库就是一个很好的选择,它不仅支持类型检查和验证,还能自动地将JSON数据转换为Python类的对象。 ##### 安装`pydantic` 首先,确保已经安装了`pydantic`库,可以通过pip安装: ```bash pip install ...

    android常用json传值解析工具类

    它不仅能够快速地将Java对象转换为JSON字符串,还能将JSON内容转换回Java对象,极大地简化了JSON在Android中的应用。 1. **引入Fastjson库** 在Android项目中,首先需要在build.gradle文件的dependencies块中添加...

    將JAVA數據類型轉換Json對象是日期類的處理

    这篇博客文章“将JAVA数据类型转换Json对象是日期类的处理”可能探讨了如何在Java中有效地处理日期类型的转换,因为日期在JSON中通常以字符串形式存在。 在Java中,日期类主要有`java.util.Date`、`java.time....

Global site tag (gtag.js) - Google Analytics