为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

动漫人物 2023-03-23 15:16:47
我有 Json 数据,就像 {"no":["1","2","3"],"date":["23/05/1992","02/01/1991","01/05/1992"]} 我想在 Java 中拆分成正确的格式一样。
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

两种主要方式:


1)定义一个类来映射它:


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)

您可能需要使用并设置一个JsonDateSerializer实例来指定日期格式。


2) 定义自定义 JSON 反序列化器。


它允许以编程方式更精细地控制将 json 属性映射到 Java 对象的方式。

有了杰克逊,扩大班级StdDeserializer是有可能的。


查看完整回答
反对 回复 2023-03-23
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

试试下面的代码,


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 创建对象


Gson gson = new GsonBuilder().create();

Req req = gson.fromJson(yourjson, Req.class);

将字符串日期转换为 LocalDate


String date = "02/01/1991";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");

LocalDate d = LocalDate.parse(date, formatter);


查看完整回答
反对 回复 2023-03-23
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您可以通过 Gson 库映射您的对象。

YourObj obj = new Gson().fromJson(jsonString, YourObj.class);

准备一个没有和名称属性的 POJO 类。

List<String> no;
List<String> date;

Gson是一个开源 Java 库,用于将 Java 对象序列化和反序列化为 JSON。


查看完整回答
反对 回复 2023-03-23
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信