zoukankan      html  css  js  c++  java
  • Java对象序列化与反序列化一 JSON

    Java对象序列化与反序列化一 JSON

    1. 依赖库

     

    jackson-all-1.6.1.jar

     

    2. 代码


    public class Student {
        private String name;
        private int age;
        
        public Student(){
            
        }
        public Student(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

    public class Grade {
        
        public String name = "wang";
        public int f1 = 100;

    }

    public enum Color {
        RED, GREEN, BLUE
    }


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import org.codehaus.jackson.map.ObjectMapper;
    import org.codehaus.jackson.type.TypeReference;

    public class JsonTest {

        public static void main(String[] args)throws Exception {
            ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
            mapper.registerSubtypes(Student.class);

            //对象
            String serialValue = mapper.writeValueAsString(new Student("wang", 20));
            System.out.println(serialValue);
            Student student = mapper.readValue(serialValue, Student.class);
            System.out.println(student.getName());
            
            //数组
            String[] arr1 = {"111", "222"};
            serialValue = mapper.writeValueAsString(arr1);
            System.out.println(serialValue);
            String[] arr2 = mapper.readValue(serialValue, String[].class);
            System.out.println(arr2[0]);
            
            //集合
            List<Student> list1 = new ArrayList<Student>();
            list1.add(new Student("wang", 20));
            list1.add(new Student("zhang", 21));
            serialValue = mapper.writeValueAsString(list1);
            System.out.println(serialValue);
            List<Student> list2 = mapper.readValue(serialValue, new TypeReference<List<Student>>(){});
            System.out.println(list2.get(0).getName());
            
            //MAP
            Map<Integer, String> map1 = new HashMap<Integer, String>();
            map1.put(1, "11");
            map1.put(2, "22");
            serialValue = mapper.writeValueAsString(map1);
            System.out.println(serialValue);
            Map<Integer, String> map2 = mapper.readValue(serialValue, new TypeReference<Map<Integer, String>>(){});
            System.out.println(map2.get(1));
            
            //枚举
            Color color = Color.RED;
            serialValue = mapper.writeValueAsString(color);
            System.out.println(serialValue);
            Color color2 = mapper.readValue(serialValue, Color.class);
            System.out.println(color2);
            
            //注入测试 
            serialValue = mapper.writeValueAsString(new Student("",{wang}[]:,"", 20));
            System.out.println(serialValue);
            Student student3 = mapper.readValue(serialValue, Student.class);
            System.out.println(student3.getName());
            
            serialValue = mapper.writeValueAsString(new Grade());
            System.out.println(serialValue);
            Grade g = mapper.readValue(serialValue, Grade.class);
            System.out.println(g.name);
        }

    }

  • 相关阅读:
    [工作积累] shadow map问题汇总
    引擎设计跟踪(九.14.3.4) mile stone 2
    引擎设计跟踪(九.14.3.3) Deferred shading的一些小细节
    引擎设计跟踪(九.14.3.2) Deferred shading的后续实现和优化
    《口袋妖怪 太阳/月亮》正式公布 简体中文确认
    古墓丽影:崛起 PC版今日发售
    枪弹辩驳(弹丸论破)即将登陆PC
    引擎设计跟踪(九.14.3.1) deferred shading: Depthstencil as GBuffer depth
    引擎设计跟踪(九.14.3) deferred shading 准备
    引擎设计跟踪(九.14.2 final) Inverse Kinematics: CCD 在Blade中的实现
  • 原文地址:https://www.cnblogs.com/fx2008/p/3139679.html
Copyright © 2011-2022 走看看