一、Json序列化
Json序列化是指将一个Java对象转化为Json字符串的过程。Json字符串是一种轻量级的数据交换格式,常用于客户端与服务端之间数据传输。
Java提供了多个Json序列化库,比如Gson、Jackson、FastJson等。下面以Gson为例介绍Json序列化的实现。
// 定义一个Java对象 class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } // 对象转Json字符串 Gson gson = new Gson(); Person person = new Person("张三", 20); String jsonStr = gson.toJson(person); System.out.println(jsonStr); // {"name":"张三","age":20}
在上面的例子中,我们使用了Gson库将一个Person对象转换为Json字符串。这里需要注意的是,Person类的属性必须使用private修饰符,否则Gson将无法将其转化为Json字符串。同时,我们也可以使用其他的Json库来实现相同的功能。
二、Json反序列化
Json反序列化是指将一个Json字符串转化为Java对象的过程。与Json序列化相反,Json反序列化常用于服务端接收客户端传来的Json数据。
Java提供了多个Json反序列化库,同样以Gson为例介绍Json反序列化的实现。
// Json字符串转对象 Gson gson = new Gson(); String jsonStr = "{\"name\":\"张三\",\"age\":20}"; Person person = gson.fromJson(jsonStr, Person.class); System.out.println(person.getName()); // 张三 System.out.println(person.getAge()); // 20
在上面的例子中,我们使用了Gson库将一个Json字符串转化为Person对象。需要注意的是,Json字符串的属性名必须与Java对象的属性名一一对应,这样才能正确地将Json字符串转换为Java对象。同时,我们也可以使用其他的Json库来实现相同的功能。
三、Json格式化
Json格式化是指将一个未格式化的Json字符串按照一定的规则进行格式化,使其更具可读性。Java提供了多个Json格式化工具包,如Jackson、Gson等。
以Gson为例,下面介绍Json格式化的实现。
// 格式化Json字符串 String jsonStr = "{\"name\":\"张三\",\"age\":20}"; Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonElement je = JsonParser.parseString(jsonStr); System.out.println(gson.toJson(je)); /* { "name": "张三", "age": 20 } */
在上面的例子中,我们使用了Gson库将一个未格式化的Json字符串按照一定的规则格式化。这里使用了setPrettyPrinting()方法,表示采用默认的格式化方式。同时,我们也可以自定义格式化方式来满足特定的格式化需求。
四、Json转JavaBean
Json转JavaBean是指将一个Json对象或Json字符串转化为JavaBean对象的过程。JavaBean是一个符合JavaBean规范的Java类,其属性需要使用private修饰符,并且提供getter和setter方法,以便于访问和修改该属性。JavaBean主要用于数据传输和业务处理。
下面以Gson为例介绍Json转JavaBean的实现。
// Json字符串转JavaBean class Student { private String name; private int age; private String[] hobbies; // getter和setter方法省略 } String jsonStr = "{\"name\":\"小明\",\"age\":18,\"hobbies\":[\"游泳\",\"足球\"]}"; Gson gson = new Gson(); Student student = gson.fromJson(jsonStr, Student.class); System.out.println(student.getName()); // 小明 System.out.println(student.getAge()); // 18 System.out.println(Arrays.toString(student.getHobbies())); // [游泳, 足球]
在上面的例子中,我们使用了Gson库将一个Json字符串转换为JavaBean对象。这里需要注意的是,Json字符串中的属性名必须与JavaBean类的属性名一一对应,否则转换过程会失败。同时,我们也可以使用其他的Json库来实现相同的功能。
五、Json数组转Java集合
Json数组转Java集合是指将一个Json数组转化为Java集合的过程,其中Java集合可以是List、Set或Map等类型。
下面以Gson为例介绍Json数组转Java集合的实现。
// Json数组转Java集合 Gson gson = new Gson(); String jsonStr = "[\"电影\",\"音乐\",\"互联网\"]"; Listlist = gson.fromJson(jsonStr, new TypeToken<List<String>>(){}.getType()); System.out.println(list); // [电影, 音乐, 互联网]
在上面的例子中,我们使用了Gson库将一个Json数组转化为List集合。这里需要注意的是,我们需要使用new TypeToken<List<String>>(){}.getType()方法获取List<String>类型的泛型,否则转换会失败。同时,我们也可以将Json数组转为其他类型的Java集合。