fastJSON字符串类型数据中的日期转换为Java bean的日期对象

编程教程 > WEB > JavaScript (4297) 2024-11-26 14:39:04
fastJSON字符串类型数据中的日期转换为Java bean的日期对象



Person.java
import java.io.Serializable;
import java.util.Date;

public class Person implements Serializable {
    private String name;
    private Date birthday;
    private Date createDate;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
}



Test.java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;

import java.text.SimpleDateFormat;

public class Test {
    public static void main(String[] args) {
        String personJSONStr="{\"name\":\"exampleName\",\"birthday\":\"2012-04-02\",\"createDate\":\"2018.09.22\"}";
        JSONObject jsonObject= JSON.parseObject(personJSONStr);
        Person person=jsonObject.toJavaObject(new TypeReference<Person>(){});
        System.out.println(new SimpleDateFormat("yyyMMdd").format(person.getCreateDate()));
    }
}


输出:
Connected to the target VM, address: '127.0.0.1:64532', transport: 'socket'
Disconnected from the target VM, address: '127.0.0.1:64532', transport: 'socket'
Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "2018.09.22"
	at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1048)
	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:692)
	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:858)
	at com.alibaba.fastjson.JSON.toJavaObject(JSON.java:1019)
	at Test.main(Test.java:11)
Caused by: java.lang.NumberFormatException: For input string: "2018.09.22"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Long.parseLong(Long.java:589)
	at java.lang.Long.parseLong(Long.java:631)
	at com.alibaba.fastjson.util.TypeUtils.castToDate(TypeUtils.java:336)
	at com.alibaba.fastjson.util.TypeUtils.castToDate(TypeUtils.java:275)
	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:747)
	at com.alibaba.fastjson.util.TypeUtils.cast(TypeUtils.java:858)
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:1180)
	at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1046)
	... 4 more

Process finished with exit code 1

解决办法:
修改person类:
import com.alibaba.fastjson.annotation.JSONField;

import java.io.Serializable;
import java.util.Date;

public class Person implements Serializable {
    private String name;

    @JSONField(format = "yyyy-MM-dd")
    private Date birthday;

    @JSONField(format = "yyyy.MM.dd")
    private Date createDate;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
}

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
fastJSON字符串类型数据中的日期转换为Java bean的日期对象
在国内项目中,阿里的fastjson包因其使用简单功能强大很多人喜欢在项目中使用,我也是其中一员
java json字符串转对象_json转换为java对象_ json字符串转对象数组
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
java编程中使用nodejs的apidoc工具生成Java api美观的HTML文档,apidoc可以根据代码注释生成web api文档,支持大部分主流语言
环境说明1.MySQL5.7(注意,json格式最低需要改版本支持);2.存json数据的数据库字段类型必须是json,不能是varchar;
MySQL,从大概5.7版本开始支持json数据类型,但是5.7的json查询不支持创建索引,在MySQL 8.0.17 后支持了索引,但是创建和查询使用索引与常规索引不同
handlerexceptionresolver 返回json
前言值得一提的是JSON只有数组数据类型
有些时候你可能会导出大量的JSON数据到文件中,或者说将所有数据导入到JSON文件。和任何大数据集一样,您不能只将其全部放入内存并将其写入文件。 它需要一段时间
说明:json除了键值对的形式以外,还包括Array数列形式,这在mysql5.7及以上也是支持的,对Array中元素的操作相当于直接对键值对中的值操作,少了“键”的定位这一步,这里不单独展示,...
Java编程之Spring Boot中使用jsp视图模板
JavaScript/JS读取文本/JSON文件内容let file = files[0];var reader = new FileReader();read
httpclient4.5使用详解 httpclient 4.5 post传递json参数
简介Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求