JSON解析错误-发布json

时间:2019-07-26 14:47:52

标签: java json spring

我有一个实体User,其中有两个Data type字段。

@Entity
@Table(name = "users", schema = "public")
public class User {

    @Id
    @Column(name = "user_id", updatable = false, nullable = false, unique = true)
    @GeneratedValue(generator = "UUID")
    @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
    private UUID id;
    @Column(name = "name")
    private String name;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd@HH:mm:ss")
    @Column(name = "created_on")
    @JsonIgnore
    private Date createdOn;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd@HH:mm:ss")
    @Column(name = "modified_on")
    @JsonIgnore
    private Date modifiedOn;

// construuctors, getter, setter
}

我有一个具有has方法save()的控制器,该方法将有关用户的数据保存到postgesql数据库中。

@RestController
@RequestMapping("/user")
public class UsersController {

    @Autowired
    private UsersService service;

    @PostMapping("/save")
    public void save(@RequestBody User user){
        service.save(user);
    }

}

我有一个JSON,我将其发布到控制器

  

{“ name”:“ Max”,“ createdOn”:“ 2019-07-26 11:13:39”,   “ modifiedOn”:“ 2019-07-26 11:13:39”}

最后在执行过程中出现错误

  

“ JSON解析错误:无法反序列化类型java.sql.Date的值   来自字符串“ 2019-07-26 11:13:39 \”:不是有效的表示形式   (错误:无法解析日期值'2019-07-26 11:13:39':无法解析   日期\“ 2019-07-26 11:13:39 \”:虽然它似乎适合格式   'yyyy-MM-dd'T'HH:mm:ss.SSSZ',解析失败(宽大?为null));嵌套的   例外是   com.fasterxml.jackson.databind.exc.InvalidFormatException:无法   从字符串\“ 2019-07-26反序列化类型java.sql.Date的值   11:13:39 \“:不是有效的表示形式(错误:无法解析日期   值'2019-07-26 11:13:39':无法解析日期\“ 2019-07-26   11:13:39 \“:虽然看起来适合格式'yyyy-MM-dd'T'HH:mm:ss.SSSZ',   在[来源:(PushbackInputStream);解析失败(宽大?null))\ n   行:3,列:13](通过参考链:   com.example.api.entity.User [\“ createdOn \”])“

1 个答案:

答案 0 :(得分:1)

尝试添加T

2019-07-26T11:13:39