前言:JSON在传输数据时,起到了特别大的作用,本文是采用的是com.alibaba.fastjson第三方包完成json格式的转换
一、首先导入maven依赖:
| <dependency> |
| <groupId>com.alibaba</groupId> |
| <artifactId>fastjson</artifactId> |
| <version>2.0.19</version> |
| </dependency> |
复制
二、常用的一些方法
2.1 序列化
对象、集合序列化成json字符串
| public static String toJSONString(Object object) |
复制
2.2 反序列化
json字符串反序列化成javabean对象或者类
| public static <T> T parseObject(String text, Class<T> clazz) |
复制
json字符串反序列化成为List集合
| public static <T> List<T> parseArray(String text, Class<T> clazz) |
复制
json字符串反序列化成为Map集合:
| public static <T> T parseObject(String text, TypeReference<T> type, Feature... features) |
复制
三、Demo演示
| package com.hssy.newcustomer; |
| |
| import com.alibaba.fastjson.JSON; |
| import com.alibaba.fastjson.TypeReference; |
| import com.hssy.newcustomer.dto.fastjson.JsonDetailModule; |
| import org.junit.jupiter.api.Test; |
| import org.springframework.boot.test.context.SpringBootTest; |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| |
| @SpringBootTest |
| class NewcustomerApplicationTests { |
| |
| |
| @Test |
| void contextLoads() { |
| JsonDetailModule module = new JsonDetailModule(); |
| module.setId(2); |
| module.setName("张菲"); |
| List<String> hobbys = new ArrayList<>(); |
| hobbys.add("唱歌"); |
| hobbys.add("书法"); |
| hobbys.add("三国演绎"); |
| module.setHobby(hobbys); |
| String jsonString = JSON.toJSONString(module); |
| System.out.println(jsonString); |
| |
| } |
| |
| |
| @Test |
| void testListToJson(){ |
| List<JsonDetailModule> list = new ArrayList<>(); |
| for (int i = 0; i < 2; i++) { |
| JsonDetailModule module = new JsonDetailModule(); |
| module.setId(i); |
| module.setName("用户:"+ i); |
| List<String> hobbys = new ArrayList<>(); |
| hobbys.add("随机爱好:"+(char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)))); |
| hobbys.add("随机爱好:"+(char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)))); |
| module.setHobby(hobbys); |
| list.add(module); |
| } |
| String jsonString = JSON.toJSONString(list); |
| System.out.println(jsonString); |
| |
| |
| } |
| |
| @Test |
| void testMapToJson(){ |
| HashMap<String, List<String>> map = new HashMap<>(); |
| List<String> hobbys = new ArrayList<>(); |
| hobbys.add("唱"); |
| hobbys.add("跳"); |
| hobbys.add("rap"); |
| hobbys.add("篮球"); |
| List<String> genders = new ArrayList<>(); |
| genders.add("男"); |
| genders.add("女"); |
| map.put("爱好",hobbys); |
| map.put("性别",genders); |
| String jsonString = JSON.toJSONString(map); |
| System.out.println(jsonString); |
| |
| } |
| |
| |
| |
| |
| @Test |
| void testJsonToJava(){ |
| String jsonString = "{\"hobby\":[\"唱歌\",\"书法\",\"三国演绎\"],\"id\":2,\"name\":\"张菲\"}"; |
| JsonDetailModule jsonDetialModule = JSON.parseObject(jsonString, JsonDetailModule.class); |
| System.out.println(jsonDetialModule); |
| } |
| |
| @Test |
| void testJsonToList(){ |
| String jsonString = " [{\"hobby\":[\"随机爱好:武\",\"随机爱好:畧\"],\"id\":0,\"name\":\"用户:0\"},{\"hobby\":[\"随机爱好:穊\",\"随机爱好:丠\"],\"id\":1,\"name\":\"用户:1\"}]"; |
| List<JsonDetailModule> jsonDetailModules = JSON.parseArray(jsonString, JsonDetailModule.class); |
| System.out.println(jsonDetailModules); |
| |
| for (JsonDetailModule item : jsonDetailModules) { |
| System.out.println(item); |
| } |
| |
| |
| } |
| |
| @Test |
| void testJsonToMap(){ |
| String jsonString ="{\"爱好\":[\"唱\",\"跳\",\"rap\",\"篮球\"],\"性别\":[\"男\",\"女\"]}"; |
| |
| |
| |
| |
| Map<String, List<String>> map = JSON.parseObject(jsonString, new TypeReference<Map<String, List<String>>>(){}); |
| for (String key: map.keySet()) { |
| System.out.println(key +":--:"+map.get(key)); |
| } |
| |
| |
| } |
| |
| |
| |
| |
| |
| } |
复制