JAVA市場上存在眾多的數據交換格式,其中JSON是一種廣泛應用的交換格式。JSON Mapper是JAVA編程語言中用于序列化和反序列化JSON的庫。JSON Mapper可以將Java對象轉換成JSON序列,同時也可以將JSON序列轉換成Java對象。
public class Person { private String name; private int age; private Address address; // getter 和 setter } public class Address { private String street; private String city; // getter 和 setter }
在使用JSON Mapper進行序列化時,需要引入如下所示的依賴庫。
com.fasterxml.jackson.core jackson-databind 2.10.3
下面的示例代碼演示了如何使用JSON Mapper將上述Person對象序列化成JSON字符串。
ObjectMapper mapper = new ObjectMapper(); Person person = new Person(); person.setName("Jack"); person.setAge(30); Address address = new Address(); address.setCity("Shanghai"); address.setStreet("Hongqiao Road"); person.setAddress(address); String jsonStr = mapper.writeValueAsString(person); System.out.println(jsonStr);
最終打印結果如下所示:
{ "name": "Jack", "age": 30, "address": { "street": "Hongqiao Road", "city": "Shanghai" } }
同樣地,JSON Mapper也提供了從JSON序列中反序列化為Java對象的功能。下面的示例代碼演示了如何使用JSON Mapper將上述JSON字符串反序列化為Person對象。
String jsonStr = "{"name":"Jack","age":30,"address":{"street":"Hongqiao Road","city":"Shanghai”}}"; ObjectMapper mapper = new ObjectMapper(); Person person = mapper.readValue(jsonStr, Person.class); System.out.println(person.getName()); System.out.println(person.getAge()); System.out.println(person.getAddress().getCity()); System.out.println(person.getAddress().getStreet());
最終打印結果如下所示:
Jack 30 Shanghai Hongqiao Road
以上就是一個簡單的使用JSON Mapper進行JAVA對象和JSON序列之間的序列化、反序列化的演示示例。