JSON介绍
- JSON 的转换工具是通过 JAVA 封装好的一些 JAR 工具包。
- 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。
- Jackson:开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。
使用方法
- 导入 jar 包。
- 创建核心对象。
- 调用方法完成转换。
常用的类
- 类名: ObjectMapper 说明:(是jackson工具的核心类,它提供一些方法来实现JSON字符串和对象之间的转换)
- 类名: TypeReference 说明:(对集合泛型的反序列化,使用TypeReference可以明确的指定反序列化的对象类)
ObjectMapper常用方法
- 方法名:String writeValueAsString(Object obj) 说明:(将java对象转换成JSON字符串)
- 方法名:T readValue(String json,ClassvalueType)
说明:(将JSON字符串转换成JAVA对象) - 方法名:T readValue(String json,TyprReference valueTypeRef)
说明:((将JSON字符串转换成JAVA对象)
JSON转换练习
- 对象转 JSON, JSON 转对象。
public class ObjectMapperTest {
private ObjectMapper mapper = new ObjectMapper();
@Test
public void test01() throws Exception{
User user = new User("张三",21);
String json = mapper.writeValueAsString(user);
System.out.println("json字符串:" + json);
User user2 = mapper.readValue(json, User.class);
System.out.println("java对象:" + user2);
}
}
- Map转 JSON, JSON 转 Map。
@Test
public void test02() throws Exception{
HashMap<String,String> map = new HashMap<>();
map.put("姓名","张三");
map.put("性别","男");
String json = mapper.writeValueAsString(map);
System.out.println("json字符串:" + json);
HashMap<String,String> map2 = mapper.readValue(json, HashMap.class);
System.out.println("java对象:" + map2);
}
- Map转 JSON, JSON 转 Map。
@Test
public void test03() throws Exception{
HashMap<String,User> map = new HashMap<>();
map.put("黑马一班",new User("张三",23));
map.put("黑马二班",new User("李四",24));
String json = mapper.writeValueAsString(map);
System.out.println("json字符串:" + json);
HashMap<String,User> map2 = mapper.readValue(json,new TypeReference<HashMap<String,User>>(){});
System.out.println("java对象:" + map2);
}
- List转 JSON, JSON 转 List。
@Test
public void test04() throws Exception{
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
String json = mapper.writeValueAsString(list);
System.out.println("json字符串:" + json);
ArrayList<String> list2 = mapper.readValue(json,ArrayList.class);
System.out.println("java对象:" + list2);
}
- List转 JSON, JSON 转 List。
@Test
public void test05() throws Exception{
ArrayList<User> list = new ArrayList<>();
list.add(new User("张三",23));
list.add(new User("李四",24));
String json = mapper.writeValueAsString(list);
System.out.println("json字符串:" + json);
ArrayList<User> list2 = mapper.readValue(json,new TypeReference<ArrayList<User>>(){});
System.out.println("java对象:" + list2);
}
小结
- Jackson:**开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。
- 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。