Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

JSONObject.toJavaObject对于指定日期format解析报错 #3309

@jaemybai

Description

@jaemybai

public class Test {
public static void main(String[] args) {

   JSONObject jsonObj = new JSONObject();
    jsonObj.put("formatDate","20200623 15:20:01");
    DateFormatTest dateFormatTest = jsonObj.toJavaObject(DateFormatTest.class);
    System.out.println(JSON.toJSONString(dateFormatTest));
}

}

class DateFormatTest {
@JSONField(format = "yyyyMMdd HH:mm:ss")
private Date formatDate;

    public Date getFormatDate() {
        return formatDate;
    }

    public void setFormatDate(Date formatDate) {
        this.formatDate = formatDate;
    }
}

运行程序报错
Exception in thread "main" com.alibaba.fastjson.JSONException: For input string: "20200623 15:20:01"
at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1505)
at com.alibaba.fastjson.JSONObject.toJavaObject(JSONObject.java:603)
at Test .main(StartProvider.java:30)
Caused by: java.lang.NumberFormatException: For input string: "20200623 15:20:01"
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:482)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:1435)
at com.alibaba.fastjson.util.TypeUtils.castToJavaBean(TypeUtils.java:1503)

但是这种写法是可以正常运行的,JSON.parseObject(jsonObj.toJSONString(), DateFormatTest.class);
之前升级到1.2.67是支持的,后来升级到1.2.72又不行了

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions