如何提取自定义格式的JSON数据?

我有 Json 数据,就像 {"no":["1","2","3"],"date":["23/05/1992","02/01/1991","01/05/1992"]} 我想在 Java 中拆分成正确的格式一样。



动漫人物
浏览 155回答 3
3回答

偶然的你

两种主要方式:1)定义一个类来映射它:public class Foo{&nbsp; &nbsp;private List<String> no;&nbsp; &nbsp;private List<LocalDate> date;&nbsp; &nbsp;// setters or factory method}并使用 Json API,例如 Jackson :ObjectMapper mapper = new ObjectMapper();Foo foo = mapper.readValue(myStringRepresentingJson, Foo.class)您可能需要使用并设置一个JsonDateSerializer实例来指定日期格式。2) 定义自定义 JSON 反序列化器。它允许以编程方式更精细地控制将 json 属性映射到 Java 对象的方式。有了杰克逊,扩大班级StdDeserializer是有可能的。

慕姐4208626

试试下面的代码,public class Req {&nbsp; &nbsp; private List<String> no;&nbsp; &nbsp; private List<String> date;&nbsp; &nbsp; public List<String> getNo() {&nbsp; &nbsp; &nbsp; &nbsp; return no;&nbsp; &nbsp; }&nbsp; &nbsp; public void setNo(List<String> no) {&nbsp; &nbsp; &nbsp; &nbsp; this.no = no;&nbsp; &nbsp; }&nbsp; &nbsp; public List<String> getDate() {&nbsp; &nbsp; &nbsp; &nbsp; return date;&nbsp; &nbsp; }&nbsp; &nbsp; public void setDate(List<String> date) {&nbsp; &nbsp; &nbsp; &nbsp; this.date = date;&nbsp; &nbsp; }}用法直接使用控制器方法@PostMapping("/test")public ResponseEntity<?> test(@RequestBody Req req) {&nbsp; &nbsp; System.out.println(req.no);}使用 Gson 创建对象Gson gson = new GsonBuilder().create();Req req = gson.fromJson(yourjson, Req.class);将字符串日期转换为 LocalDateString date = "02/01/1991";DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");LocalDate d = LocalDate.parse(date, formatter);

陪伴而非守候

您可以通过 Gson 库映射您的对象。YourObj&nbsp;obj&nbsp;=&nbsp;new&nbsp;Gson().fromJson(jsonString,&nbsp;YourObj.class);准备一个没有和名称属性的 POJO 类。List<String>&nbsp;no; List<String>&nbsp;date;Gson是一个开源 Java 库,用于将 Java 对象序列化和反序列化为 JSON。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java