使用Jackson工具包
导入Jackson依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.1</version>
</dependency>
public class TestJson {
public static void main(String[] args) throws JsonProcessingException {
Province shanghai = new Province(10,"上海","沪","直辖市");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(shanghai);
String json = mapper.writeValueAsString(list);
System.out.println(json);
Province p = mapper.readValue(json, Province.class);
System.out.println(p);
List<Province> listPro = mapper.readValue(json, new TypeReference<List<Province>>() {});
listPro.forEach(province -> System.out.println(province.toString()));
}
}
使用gson工具包
导入gson依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
@Test
public void test1(){
Person person = new Person(1,"迪丽热巴");
Gson gson = new Gson();
String personJsonString = gson.toJson(person);
System.out.println(personJsonString);
Person person1 = gson.fromJson(personJsonString, Person.class);
System.out.println(person1);
}
@Test
public void test2() {
List<Person> personList = new ArrayList<>();
personList.add(new Person(1, "迪丽热巴"));
personList.add(new Person(2, "古力娜扎"));
Gson gson = new Gson();
String personListJsonString = gson.toJson(personList);
System.out.println(personListJsonString);
List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
System.out.println(list);
Person person = list.get(0);
System.out.println(person);
}
@Test
public void test3(){
Map<Integer,Person> personMap = new HashMap<>();
personMap.put(1, new Person(1, "迪丽热巴"));
personMap.put(2, new Person(2, "马尔扎哈"));
Gson gson = new Gson();
String personMapJsonString = gson.toJson(personMap);
System.out.println(personMapJsonString);
PersonMapType().getType());
Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new
TypeToken<HashMap<Integer,Person>>(){}.getType());
System.out.println(personMap2);
Person p = personMap2.get(1);
System.out.println(p);
}
使用fastjson工具包
导入fastjson依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
序列化:
String jsonString = JSON.toJSONString(obj);
反序列化:
VO vo = JSON.parseObject("jsonString", VO.class);
泛型反序列化:
List<VO> list = JSON.parseObject("jsonString", new TypeReference<List<VO>>(){});
注意:VO必须有默认无参构造方法