package com.itheima2;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class ObjectMapperTest {
private ObjectMapper mapper = new ObjectMapper();
@Test
public void test01() throws Exception {
///User对象转json
User user = new User("张三",23);
String json = mapper.writeValueAsString(user);
System.out.println("json字符串:"+json);
//json转User
User user2 = mapper.readValue(json,User.class);
System.out.println("java对象:"+user2);
}
@Test
public void test02() throws Exception {
//json字符串 = {"姓名":"张三","性别":"男"}
HashMap map = new HashMap<>();
map.put("姓名:","张三");
map.put("性别:","男");
String json = mapper.writeValueAsString(map);
System.out.println("json字符串:"+json);
/// map对象 = {姓名=张三, 性别=男}
HashMap hashMap = mapper.readValue(json, HashMap.class);
System.out.println("java对象:"+hashMap);
}
@Test
public void test03() throws Exception {
//json字符串 = {"姓名":"张三","性别":"男"}
HashMap map = new HashMap<>();
map.put("黑马一班:", new User("张三",23));
map.put("黑马二班:",new User("李四",24));
String json = mapper.writeValueAsString(map);
System.out.println("json字符串:"+json);
/// map对象 = {姓名=张三, 性别=男}
HashMap hashMap = mapper.readValue(json, new TypeReference>(){}); /// 匿名内部类
System.out.println("java对象:"+hashMap);
}
@Test
public void test04() throws Exception {
//json字符串 = {"姓名":"张三","性别":"男"}
ArrayList list = new ArrayList<>();
list.add("张三");
list.add("李四");
String json = mapper.writeValueAsString(list);
System.out.println("json字符串:"+json);
/// map对象 = {姓名=张三, 性别=男}
ArrayList arrayList = mapper.readValue(json, ArrayList.class);/// 匿名内部类
System.out.println("java对象:"+arrayList);
}
@Test
public void test05() throws Exception {
//json字符串 = {"姓名":"张三","性别":"男"}
ArrayList list = new ArrayList<>();
list.add(new User("张三",23));
list.add(new User("李四",24));
String json = mapper.writeValueAsString(list);
System.out.println("json字符串:"+json);
/// map对象 = {姓名=张三, 性别=男}
ArrayList arrayList = mapper.readValue(json, new TypeReference>(){});/// 匿名内部类
System.out.println("java对象:"+arrayList);
}
}
User代码
package com.itheima2;
public class User {
private String name;
private Integer age;
public User() {
}
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + ''' +
", age=" + age +
'}';
}
}



