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());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FastjsonFastjson2都是JSON库,用于处理JSON格式的数据。 Fastjson2是Fastjson项目的重要升级,旨在为未来十年提供高性能的JSON库。相比于原来的FastjsonFastjson2在性能上有了很大的提升,并且更加安全。它完全删除了autoType白名单,提升了安全性。 在使用上,导入Fastjson2的依赖后,与原来的Fastjson在代码上基本相同。唯一的区别是在Fastjson2中,将`jsonArray.toJavaList`方法转变为`jsonArray.toList`。 总结来说,FastjsonFastjson2都是用于处理JSON数据的库,但Fastjson2是Fastjson的升级版本,提供了更高的性能和更好的安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [fastjson2 介绍及使用](https://blog.csdn.net/qq_33697094/article/details/128114939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Fastjson2你开始使用了吗?来看看源码解析](https://blog.csdn.net/chenxuyuana/article/details/125581066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值