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();
        }