map转json时key或value为null的情况

当value为null时

     @Test
    public void testFastJsonAndJackson() throws Exception {
        HashMap<String, Student> map = new HashMap<>();
        map.put("aa", new Student("01", "张三"));
        map.put("bb", new Student("02", "李四"));
        map.put("cc",null);
        map.put("dd",new Student());
//        map.put(null, new Student("03", "王五"));
        map.forEach((k, v) -> System.out.println(k + ":" + v));
        System.out.println("================================");
        System.out.println("map: " + map);
        System.out.println("================================");
        //fastJson
        String s = JSON.toJSONString(map);
        System.out.println("用fastJson转json字符串: " + s);
        String s1 = JSONObject.toJSONString(map);
        System.out.println("用fastJson转json字符串: " + s1);
        System.out.println("================================");
        //jackson
        ObjectMapper objectMapper = new ObjectMapper();
        String s2 = objectMapper.writeValueAsString(map);
        System.out.println("用jackson转json字符串: " + s2);
    }

运行结果1

运行结果1

当key为null时

    @Test
    public void testFastJsonAndJackson() throws Exception {
        HashMap<String, Student> map = new HashMap<>();
        map.put("aa", new Student("01", "张三"));
        map.put("bb", new Student("02", "李四"));
        map.put("cc",null);
        map.put("dd",new Student());
        map.put(null, new Student("03", "王五"));
        map.forEach((k, v) -> System.out.println(k + ":" + v));
        System.out.println("================================");
        System.out.println("map: " + map);
        System.out.println("================================");
        //fastJson
        String s = JSON.toJSONString(map);
        System.out.println("用fastJson转json字符串: " + s);
        String s1 = JSONObject.toJSONString(map);
        System.out.println("用fastJson转json字符串: " + s1);
        System.out.println("================================");
        //jackson
        ObjectMapper objectMapper = new ObjectMapper();
        String s2 = objectMapper.writeValueAsString(map);
        System.out.println("用jackson转json字符串: " + s2);

运行结果2

运行结果2

总结

  1. fastjson会转化key为null时情况,但是会过滤掉value为null的键值对;
  2. jackson会转化value为null的情况,但是key为null时会报错;

结论

在fastjson或jackson时,map中一定要避免null值,可以给一个空的类型,字符串/对象/数组/list之类的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值