我正在执行一个CommandLineRunner,它接受输入文件(json)并将其转换为dto以便进一步处理。
List<UserCreateDto> users = gson.fromJson(new InputStreamReader(new ClassPathResource("user.json").getInputStream()), new TypeToken<List<UserCreateDto>>() {
}.getType());
json看起来像这样:
[
{
"username": "user2",
"firstName": "userfirst2",
"lastName": "userlast2",
"password": "userpass2",
"validFrom": "2017-01-01",
"validTill": "2020-01-01"
},
{
"username": "user1",
"firstName": "userfirst",
"lastName": "userlast",
"password": "userpass",
"validFrom": "2017-01-01",
"validTill": "2020-01-01"
}]
dto非常简单。只添加了一件事
@DateTimeFormatter(format = "yyyy-mm-dd")
private Date validFrom;
@DateTimeFormatter(format = "yyyy-mm-dd")
private Date validTill;
这里Date是java.util.Date
但是,当我运行该代码时,我不会在用户列表中获得validFrom
和validTo
。
validFrom
和validTill
的所有值均为空。
我在这里缺少什么?
答案 0 :(得分:1)
尝试在gson
实例化本身
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-mm-dd").create();