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

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(2276)   2023-03-28 11:29:14
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;
    }
}
地址:https://www.leftso.com/article/474.html

相关阅读

fastJSON字符串类型数据中的日期转换为Java bean的日期对象
java json字符串转对象_json转换为java对象_ json字符串转对象数组
在国内项目中,阿里的fastjson包因其使用简单功能强大很多人喜欢在项目中使用,我也是其中一员
首先定义一个包含字符串日期的数据对象​public class ObjectDto implements Serializable { private static final long...
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
在MySQL或者各种数据库中,都很大可能使用到日期类型。在Java代码中进行日期转换还是比较容易的。但是大多数时候日期的参数都是字符串。而且在工具中使用字符串的方式来表达时间比较方便。这里记录下...
java Queue队列实现生产消费模式,什么是Java编程中的Queue(队列),手动实现生产者消费者模式