Jackson是一個流行的Java庫,用于處理JSON數(shù)據(jù)。它提供了一種簡單的方式來將Java對象序列化為JSON格式,也可以將JSON格式的數(shù)據(jù)反序列化為Java對象。正常情況下,jackson返回json的格式比較清晰、易讀。
//Java對象轉(zhuǎn)JSON格式 ObjectMapper objectMapper = new ObjectMapper(); User user = new User("Tom", 20); String jsonString = objectMapper.writeValueAsString(user); System.out.println(jsonString); //輸出: {"name":"Tom","age":20} //JSON格式轉(zhuǎn)Java對象 String json = "{\"name\":\"Tom\",\"age\":20}"; User user = objectMapper.readValue(json, User.class); System.out.println(user.getName() + " " + user.getAge()); //輸出: Tom 20
Jackson不僅支持Java對象和JSON格式的交互,而且它可以處理包括數(shù)組和集合等更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。在集合類型中,如果要序列化或反序列化一個列表,可以使用TypeReference類來告訴Jackson具體的類型。
//序列化集合類型 List<User> userList = new ArrayList<>(); userList.add(new User("Tom", 20)); userList.add(new User("Lily", 18)); String jsonString = objectMapper.writeValueAsString(userList); System.out.println(jsonString); //輸出: [{"name":"Tom","age":20},{"name":"Lily","age":18}] //反序列化集合類型 List<User> userList = objectMapper.readValue(jsonString, new TypeReference<List<User>>(){}); for (User user : userList) { System.out.println(user.getName() + " " + user.getAge()); } //輸出: //Tom 20 //Lily 18
總之,Jackson是一個功能強大的Java庫,它使得Java對象和JSON格式數(shù)據(jù)之間的互操作變得非常簡單和直觀,由于其格式很清晰易讀,在開放API、數(shù)據(jù)交互領(lǐng)域很有應(yīng)用價值。
下一篇vue微信功能