JSON序列化
- 序列化:将java对象转换为字节序列
- 反序列化:把字节序
举个例子,假如我们要对
Student
类对象序列化到一个名为student.txt
的文本文件中,然后再通过文本文件反序列化成Student
类对象:其实序列化:将一个对象转化为一种格式,能够更好的传输和电脑理解。
反序列化就是转换过来,便于人们观看的。
JSON的基本格式
对象 {
}
或 数组 [
]
JOSN的序列化省略了比如需要对对象里的方法一一调用,并且自定义格式输出。
这个是对象的输出格式
//JSON序列化
ObjectMapper mapper=new ObjectMapper(); //
try {
for (User user : users) {
String s = mapper.writeValueAsString(user);
System.out.println(s);
}
} catch (JsonProcessingException e) {
e.printStackTrace();
}
数组的输出格式
//JSON序列化
ObjectMapper mapper=new ObjectMapper();
try {
String s = mapper.writeValueAsString(users);
System.out.println(s);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
JOSN的反序列化
//JOSN反序列化
ObjectMapper mapper=new ObjectMapper(); //JSON实例化对象
File jsonfile =new File("./data/users.json"); //采用apace。common。io 实例化对象 读入文件
try {
String content = FileUtils.readFileToString(jsonfile, "UTF-8"); //将读入的文件按字符串的形式存储在content中
List<User> users1 = mapper.readValue(content, new TypeReference<List<User>>() { // new TypeReference<List<User>>() 定义了content以什么样的方式存储到集合中
}); //将content中的内容,按USERS类中的形式,装入到以Users类为格式的集合user1中
for (User user : users1) {
System.out.println(user.getUserName()+" "+user.getPassword()+" "+user.getGmtCreated());
}
} catch (IOException e) {
e.printStackTrace();
}