1. 程式人生 > >fastJson (ObjectMapper) 和 Gson 物件的初步使用呢(一)

fastJson (ObjectMapper) 和 Gson 物件的初步使用呢(一)

首先,兩者都是json字串的轉換工具,只不過是效能上、使用上不同

首先使用fastJson

        //定義一個物件
        Student student = new Student("張三","123456","男",20);
        //建立一個objectMapper 物件,需要匯入依賴包  就是這個包 codehaus.jackson
        ObjectMapper objectMapper = new ObjectMapper();
        //將物件轉換成json字串形式
        String s = objectMapper.writeValueAsString(student);
        //輸出結果:{"username":"張三","password":"123456","gender":"男","age":20}
        System.out.println(s);
        //將json字串轉換到map集合中
        Map<String,Object> map = objectMapper.readValue(s, Map.class);
        //輸出的是一個個鍵值對形式
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
            System.out.println("---------------------分割線-----------------------");
        }
        //將json字串再轉換成student物件
        Student stu = objectMapper.readValue(s, Student.class);
        //Student{username='張三', password='123456', gender='男', age=20}
        System.out.println(stu);

Gson的使用(建議使用)


    
        Student student = new Student("李四","123456","女",18);
        //使用gson物件將student物件轉換成json字串
        String gson_stu = new Gson().toJson(student);
        //{"username":"李四","password":"123456","gender":"女","age":18}
        System.out.println(gson_stu);
        //將json字串轉換成物件的形式
        Student stu = new Gson().fromJson(gson_stu, Student.class);
        //Student{username='李四', password='123456', gender='女', age=18}
        System.out.println(stu);
        //將json轉換成map形式
        Map<String,Object> map = new Gson().fromJson(gson_stu, Map.class);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey() + "==========>" + entry.getValue());
        }
        //這種嘗試是不可以的
       /* List list = new Gson().fromJson(gson_stu, List.class);
        for (Object o : list) {
            o.toString();
        }
       */
       //定義一個集合,集合中新增多個引用型別的成員
       List<Student> list = new ArrayList<Student>();
       list.add(student);
       list.add(new Student("王五","123344","男",20));
       list.add(new Student("趙柳","22344545","男",223));
        //將物件轉換成json字串格式
        String gson_list = new Gson().toJson(list);
        //[{"username":"李四","password":"123456","gender":"女","age":18},{"username":"王五","password":"123344","gender":"男","age":20},{"username":"趙柳","password":"22344545","gender":"男","age":223}]
        System.out.println(gson_list);

        //將該物件轉換成list集合中 =====>這樣做是不行的
//        List<Student> list_gson = new Gson().fromJson(gson_list, List.class);
//        for (Student student1 : list_gson) {
//            System.out.println(student1);
//        }

        //這樣也是不行的
//        Student student1 = new Gson().fromJson(gson_list, Student.class);
//        System.out.println(student1);

//        Map<String,List<Student>> fromJson = new Gson().fromJson(gson_list, Map.class);
//        for (Map.Entry<String, List<Student>> entry : fromJson.entrySet()) {
//            System.out.println(entry.getKey() + "===========>" + entry.getValue());
//        }

        //將json轉換成list集合  ========》成功
        List<Student> list1 = new Gson().fromJson(gson_list, new TypeToken<List<Student>>() {}.getType());
        for (Student student1 : list1) {
            System.out.println(student1);
        }

        //定義一個Map集合,將map集合轉換成json字串
        Map<String,String> map1 = new HashMap<String, String>();
        map1.put("111","zhangsan");
        map1.put("222","lisi");
        String s = new Gson().toJson(map1);
        //{"111":"zhangsan","222":"lisi"}
        System.out.println(s);

        //再將json字串轉換成map物件
        Map<String,String> map2 = new Gson().fromJson(s, Map.class);
        //{111=zhangsan, 222=lisi}
        System.out.println(map2);
        
        
        //如果map中存放著student物件
        Map<String,Student> map3 = new HashMap<String, Student>();
        map3.put("狗子",new Student("zhangsna","111","男",20));
        map3.put("二蛋",new Student("lisi","222","女",22));
        map3.put("瓜皮",new Student("wangwu","333","男",23));

        String s1 = new Gson().toJson(map3);
        //{"二蛋":{"username":"lisi","password":"222","gender":"女","age":22},"狗子":{"username":"zhangsna","password":"111","gender":"男","age":20},"瓜皮":{"username":"wangwu","password":"333","gender":"男","age":23}}
        System.out.println(s1);

        //成功
        Map<String,Student> map4 = new Gson().fromJson(s1, Map.class);
        for (Map.Entry<String, Student> entry : map4.entrySet()) {
            System.out.println(entry.getKey() + "============>" + entry.getValue());
        }