色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jackjson解析json

錢多多2年前7瀏覽0評論

JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數據交換格式,常用于Web應用程序之間進行數據交換。 jackson是Java編寫的一個開源的JSON處理庫,可以方便地將Java對象轉換為JSON對象,也可以將JSON對象轉化為Java對象。下面是一個簡單的例子:

  //JAVA對象轉化為JSON對象
  User user = new User();
  user.setId(1);
  user.setName("Tom");
  String json = new ObjectMapper().writeValueAsString(user);
  //結果:"{"id":1,"name":"Tom"}"
  //JSON對象轉化為JAVA對象
  String json = "{\"id\":1,\"name\":\"Tom\"}";
  User user = new ObjectMapper().readValue(json, User.class);
  //結果:User{id=1, name='Tom'}

在使用jackson解析JSON時,需要注意以下幾點:

  1. 區分數組和單個對象。

  String json = "[{'name':'Tom'},{'name':'Jerry'}]";
  List<User> userList = objectMapper.readValue(json, new TypeReference<List<User>>() {});

如果解析的是一個數組,需要使用TypeReference指定JSON字符串序列化后的類型,否則會報錯。

  2. 使用@JsonFormat自定義時間格式。

  public class User {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
  }
  String json = "{\"createTime\":\"2020-07-01 08:00:00\"}";
  User user = objectMapper.readValue(json, User.class);

通過@JsonFormat注解,可以指定時間類型字段的格式,避免在解析時出現格式轉換錯誤。

  3. 處理未知字段。

  public class User {
    @JsonIgnoreProperties(ignoreUnknown = true)
    private String name;
  }
  String json = "{\"name\":\"Tom\",\"age\":20}";
  User user = objectMapper.readValue(json, User.class);

如果JSON字符串中含有未知的字段,通過@JsonIgnoreProperties注解可以忽略解析過程中出現的未知字段。