Jackson是一個流行的Java庫,用于處理JSON數據。它提供了一種簡單的方式來將Java對象序列化為JSON格式,也可以將JSON格式的數據反序列化為Java對象。正常情況下,jackson返回json的格式比較清晰、易讀。
//Java對象轉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格式轉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格式的交互,而且它可以處理包括數組和集合等更復雜的數據結構。在集合類型中,如果要序列化或反序列化一個列表,可以使用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格式數據之間的互操作變得非常簡單和直觀,由于其格式很清晰易讀,在開放API、數據交互領域很有應用價值。
下一篇vue微信功能