Java中關(guān)于JSON對(duì)象的轉(zhuǎn)換操作可以使用許多開源的包來(lái)實(shí)現(xiàn),比如Jackson、Gson等。其中,Jackson是最為常用的JSON序列化和反序列化工具,在使用之前需要引入對(duì)應(yīng)的依賴。
//引入Jackson依賴 dependencies { ... implementation 'com.fasterxml.jackson.core:jackson-core:2.11.2' implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.2' implementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.2' ... }
將Java對(duì)象序列化為JSON字符串,使用ObjectMapper類的writeValueAsString方法。
//定義一個(gè)Java對(duì)象 public class Person { private String name; private int age; //getter setter方法省略... } //將Java對(duì)象轉(zhuǎn)換為JSON字符串 ObjectMapper objectMapper = new ObjectMapper(); String jsonStr = objectMapper.writeValueAsString(new Person("張三", 20)); System.out.println(jsonStr); //輸出:{"name":"張三","age":20}
將JSON字符串反序列化為Java對(duì)象,使用ObjectMapper類的readValue方法。
//將JSON字符串轉(zhuǎn)換為Java對(duì)象 String jsonStr = "{\"name\":\"張三\",\"age\":20}"; Person person = objectMapper.readValue(jsonStr, Person.class); System.out.println(person.getName()); //輸出:張三 System.out.println(person.getAge()); //輸出:20
除了Jackson之外,Gson也是一個(gè)常用的JSON序列化和反序列化工具,在使用之前需要引入對(duì)應(yīng)的依賴。
//引入Gson依賴 dependencies { ... implementation 'com.google.code.gson:gson:2.8.6' ... }
Gson的使用和Jackson十分類似,使用Gson類的toJson方法將Java對(duì)象序列化為JSON字符串,使用fromJson方法將JSON字符串反序列化為Java對(duì)象。
//將Java對(duì)象轉(zhuǎn)換為JSON字符串 Gson gson = new Gson(); String jsonStr = gson.toJson(new Person("張三", 20)); System.out.println(jsonStr); //輸出:{"name":"張三","age":20} //將JSON字符串轉(zhuǎn)換為Java對(duì)象 String jsonStr = "{\"name\":\"張三\",\"age\":20}"; Person person = gson.fromJson(jsonStr, Person.class); System.out.println(person.getName()); //輸出:張三 System.out.println(person.getAge()); //輸出:20
以上是Java中使用Jackson和Gson進(jìn)行JSON對(duì)象互轉(zhuǎn)的基本操作,可以根據(jù)實(shí)際需求進(jìn)行適當(dāng)?shù)恼{(diào)整和擴(kuò)展。