fastjson 學習筆記

fastjson 學習筆記

依賴:

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.3</version>
        </dependency>
//fast json 學習筆記;jdk1.7
// http://www.jianshu.com/p/4cab1e59befb
// http://zyjustin9.iteye.com/blog/2020533


    @Test
    public void testJsonToMap() {
        String json = "{\"pwd\":\"123\",\"username\":\"shan\",\"heart\":{\"name\":\"bearHeart\",\"size\":100,\"weight\":100.22},\"token\":\"shanhaha\",\"ip\":\"localhost\"}";
        Map<String, Object> map = JSON.parseObject(json, HashMap.class);
        System.out.println(map.get("username"));

        //獲取 MAP 中的存儲對象 heart
        Object heartJson = map.get("heart");
        System.out.println(heartJson instanceof JSONObject); //map 中取出的對象現在是 JSONObject 形式
        Heart heart = JSON.parseObject(heartJson.toString(), Heart.class); //轉換成 Heart 對象
        System.out.println(heart.getName());
        System.out.println(map);
    }

    @Test
    public void testMapToJson() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "shan");
        map.put("pwd", "123");
        map.put("ip", "localhost");
        map.put("token", "shanhaha");

        Heart heart = new Heart("bearHeart", 100, 100.22);
        map.put("heart", heart);

        String json = JSON.toJSONString(map);
        System.out.println(json);
    }


    @Test
    public void testListToJson() {
        List<Object> list = new ArrayList<Object>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        Heart heart = new Heart("bearHeart", 100, 100.22);
        list.add(heart);

        String json = JSONArray.toJSONString(list,SerializerFeature.UseSingleQuotes);
        System.out.println(json);
    }

    @Test
    public void testJsonToList() {
        String json = "[\"aaa\",\"bbb\",\"ccc\",{\"name\":\"bearHeart\",\"size\":100,\"weight\":100.22}]";
        List<Object> list = JSON.parseObject(json, ArrayList.class);
        for (Object o : list) {
            if (o instanceof JSONObject) {
                JSONObject jsonObject = ((JSONObject) o);
                String hearJson = jsonObject.toJSONString();
                Heart heart = JSON.parseObject(hearJson, Heart.class);
                System.out.println(heart.getWeight());
            } else {
                System.out.println(o.toString());
            }
        }

    }


    @Test
    public void testDate(){
        Date date = new Date();
        System.out.println(JSON.toJSONString(date));
        System.out.println(JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
        System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS"));;
    }


    @Test
    public void testWriteClass(){
        //SerializerFeature.WriteClassName 使用這個特性能夠使得反序列化時不至於類型信息丟失。

        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "shan");
        map.put("pwd", "123");
        map.put("ip", "localhost");
        map.put("token", "shanhaha");

        Heart heart = new Heart("bearHeart", 100, 100.22);
        map.put("heart", heart);

        String json = JSON.toJSONString(map,SerializerFeature.WriteClassName);
        System.out.println(json);

        Map<String,Object> mm = JSON.parseObject(json, HashMap.class);
        Heart hh = (Heart) mm.get("heart");
        System.out.println(hh.getWeight());
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章