3 回答

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
兩種主要方式:
1)定義一個(gè)類來(lái)映射它:
public class Foo{
private List<String> no;
private List<LocalDate> date;
// setters or factory method
}
并使用 Json API,例如 Jackson :
ObjectMapper mapper = new ObjectMapper();
Foo foo = mapper.readValue(myStringRepresentingJson, Foo.class)
您可能需要使用并設(shè)置一個(gè)JsonDateSerializer實(shí)例來(lái)指定日期格式。
2) 定義自定義 JSON 反序列化器。
它允許以編程方式更精細(xì)地控制將 json 屬性映射到 Java 對(duì)象的方式。
有了杰克遜,擴(kuò)大班級(jí)StdDeserializer是有可能的。

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
試試下面的代碼,
public class Req {
private List<String> no;
private List<String> date;
public List<String> getNo() {
return no;
}
public void setNo(List<String> no) {
this.no = no;
}
public List<String> getDate() {
return date;
}
public void setDate(List<String> date) {
this.date = date;
}
}
用法
直接使用控制器方法
@PostMapping("/test")
public ResponseEntity<?> test(@RequestBody Req req) {
System.out.println(req.no);
}
使用 Gson 創(chuàng)建對(duì)象
Gson gson = new GsonBuilder().create();
Req req = gson.fromJson(yourjson, Req.class);
將字符串日期轉(zhuǎn)換為 LocalDate
String date = "02/01/1991";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");
LocalDate d = LocalDate.parse(date, formatter);
添加回答
舉報(bào)