`

JsonObject 处理日期

    博客分类:
  • json
阅读更多

    写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException  原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说  直接上代码

    经过测试,以下json对日期的格式化转换支持java.util.Date,java.sql.Date 或者时间戳 等等日期格式
    转化方法

/**
  * toString的另一种写法
  * 通过传入参数日期的类类型
  * @parm Class<?> c 日期的类类型 如java.util.Date.class
  * @parm String format 日期格式化设置 如 "yyyy-mm-dd"
  * @return String
  */
 public String getString(Class<?> c,String format){
  //如果传入的类类型不是日期的类类型 就给默认的类型
  if(!"Date".equals(c.getSimpleName())){
   c = java.util.Date.class;
  }
  if(null == c || "".equals(c)&& !"Timestamp".equals(c.getSimpleName())){
   c = java.util.Date.class;
  }
  //创建一个格式化日期json对象
  JsonConfig entryConfig = new JsonConfig();
  // 将java.util.Date()的日期格式转换并且设置转换的格式(实体对象)
  if(null == format || "".equals(format)){
   format = "yyyy-MM-dd";
  }
  entryConfig.registerJsonValueProcessor(c,
    new JsonDateValueProcessor(format));
  JSONObject jsonObject = new JSONObject();
  if(null == rows || "".equals(rows)){
   jsonObject.put("rows", "");
  }else{
   //如果是集合则用jsonarry转换
   if(rows instanceof java.util.List)
    jsonObject.put("rows", JSONArray.fromObject(rows,entryConfig));
   else
    jsonObject.put("rows", JSONObject.fromObject(rows,entryConfig));
  }
  jsonObject.put("total", total);
  jsonObject.put("statusCode", statusCode);
  jsonObject.put("message", message);
  return jsonObject.toString();
 }

   格式化类

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

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

public class JsonDateValueProcessor implements JsonValueProcessor {
	// 定义转换日期类型的输出格式
	private String format = "yyyy-MM-dd";

	public JsonDateValueProcessor() {

	}

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

	@Override
	public Object processArrayValue(Object arg0, JsonConfig arg1) {
		return process(arg0);
	}

	private Object process(Object arg0) {
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.format(arg0);
	}

	@Override
	public Object processObjectValue(String key, Object value,
			JsonConfig jsonConfig) {
		if (value instanceof java.util.Date) {
			String str = new SimpleDateFormat(format).format((Date) value);
			return str;
		}
		if (null != value) {
			return value.toString();
		}
		return "";
	}

 

 

 

 

1
1
分享到:
评论

相关推荐

    JsonObject转换Date日期

    JsonObject转换Date日期的时候出现问题解决date封装成json数据出现的问题

    jsonobject.zip

    例如,如果你需要处理日期时间或进行更复杂的序列化/反序列化操作,这些额外的库可能会被包含在zip文件中。 在Java项目中引入这些jar包有多种方式: - **传统方式**:将jar包复制到项目的lib目录,并在构建路径中...

    齐全JsonObject

    4. **类型转换**:自动处理JSON值到C#类型的转换,如字符串、数字、日期等。 5. **自定义序列化和反序列化逻辑**:通过实现`JsonConverter`接口,可以定制特定类型的序列化和反序列化行为。 ### 注意事项 - 当...

    JSONObject所需所有jar包

    在这个场景中,它可能用于辅助JSONObject处理数据结构。 2. **commons-lang-2.6.jar**:Apache Commons Lang是一个包含许多有用的Java工具类的库,如字符串处理、日期和时间操作等。在处理JSON时,可能用到其中的...

    JSONObject 6个JAR 很完整

    3. **commons-lang-2.5.jar**:Apache Commons Lang 是一组实用工具类,包括字符串处理、日期和时间操作、数学函数等,这些在处理 JSON 字符串时非常有用。 4. **commons-beanutils-1.7.0.jar**:Apache Commons ...

    JSONObject所需的6个包

    `java.util`包含了一些通用的工具类,如集合框架、日期时间处理、事件模型等。在处理JSON时,`ArrayList`和`HashMap`等数据结构可能用于存储和转换JSON数据。 4. **com.fasterxml.jackson.databind**: Jackson库...

    JsonObject.rar

    标题中的“JsonObject.rar”暗示了这是一个与JSON对象处理相关的压缩包文件,可能包含了用于解析、创建和操作JSON数据的库。描述中提到“自用jar包!自用自用!”表明这些库是个人使用,可能是为了某个特定项目或...

    JSONObject运行Jar包

    2. `commons-lang-2.6.jar`:Apache Commons Lang,包含了一系列实用工具类,增强了Java语言的功能,如字符串操作、日期和时间处理等,对于处理JSON对象的字符串形式很有用。 3. `commons-beanutils-1.9.2.jar`:...

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    - `commons-lang-2.5.jar`: Apache Commons Lang库,包含了一些扩展Java语言功能的工具类,比如字符串处理、日期时间操作等。 - `commons-beanutils-1.7.0.jar`: Apache Commons BeanUtils库,提供了JavaBean操作的...

    java开发-com.alibaba.fastjson.JSONObject

    在实际开发中,理解并熟练使用`JSONObject`可以极大地提高开发效率,同时Fastjson库还提供了其他丰富的功能,如处理JSON数组`JSONArray`、处理日期、自定义序列化和反序列化等,这都需要开发者根据具体需求去深入...

    jsonObject所需jar包

    2. **commons-lang-2.4.jar**:这是Apache Commons Lang的一个版本,提供了大量实用的字符串处理、日期/时间操作、数学函数等,对于处理JSON字符串或者在序列化和反序列化过程中处理日期等复杂类型非常有用。...

    JSONObject所必须的6个jar包

    3. **commons-lang-2.5.jar**:Apache Commons Lang是Java语言工具集,包含了一些实用的类,如字符串处理、日期时间处理等。在处理JSON时,可能会用到其中的一些功能,如字符串的格式化或者异常处理。 4. **commons...

    JSONObject所需包

    在实际开发中,你可能还需要依赖一些其他的库,比如Apache Commons Lang或者Google的Gson库,它们能提供更丰富的JSON操作功能,如类型转换、日期处理等。但上述的基本包是使用JSONObject最基础的依赖,确保了JSON...

    JSONObject所需jar包

    要处理JSON对象,开发者通常会使用特定的库,如`JSONObject`。这个压缩包文件包含了多个第三方库,它们是为支持JSON操作而准备的。以下是这些库的详细说明: 1. **json-lib-2.2.2-jdk15.jar**:这是JSON库的一个...

    JSONObject所必须的6个包

    3. **commons-lang-2.5.jar**: Apache Commons Lang是Java语言工具包,包含了一系列高质量的实用工具类,比如字符串操作、日期时间处理等。在解析或构建 `JSONObject` 时,可能需要用到一些字符串处理功能。 4. **...

    实用jsonobject需要使用到的jar包

    2. **commons-lang-2.6.jar**: Apache Commons Lang是Java语言工具包,包含了对字符串操作、日期时间处理、反射等实用功能的增强。在解析或生成JSON时,可能需要进行一些字符串操作,这个库能提供帮助。 3. **...

    JSONObject.zip

    【标题】"JSONObject.zip" 提供的是一个与JSON(JavaScript Object Notation)处理相关的软件包集合,其中包含多个Java库,这些库可以帮助开发者在Java应用中解析、创建和操作JSON对象。JSON是一种轻量级的数据交换...

    jsonObject所用到的jar包

    3. `commons-lang`:Apache Commons Lang是一个包含各种实用工具类的库,提供了字符串操作、日期时间处理、类型转换等功能。在解析JSON过程中,可能会涉及字符串的处理,`commons-lang`能提供丰富的工具函数,提高...

    处理JSON日期转换

    值得注意的是,作者特别提到`json-lib-2.1`在处理日期数组时存在问题,因此选择了更新的版本来避免这个问题。 1. `getDTO(String jsonString, Class clazz)`方法:此方法接收一个JSON格式的字符串`jsonString`和一...

    JsonObject使用必备6jar包

    2. **commons-lang-2.5.jar**:Apache Commons Lang是一个为Java语言提供实用工具类的库,包括字符串处理、日期和时间操作等。在解析和构建JSON时,可能会用到它的字符串和异常处理功能。 3. **commons-beanutils-...

Global site tag (gtag.js) - Google Analytics