fastjson.toJSONString() 输出 {"empty":false}

本文主要讨论了在使用fastjson的toJSONString()方法时遇到的异常情况。当将List转Map并使用Guava工具类进行处理后,在测试环境中发现输出结果为{"empty":false},初期误以为是转换失败。经过深入分析,发现是JSON序列化打印的问题,由于特定条件下writer未被正确赋值,导致输出了默认的初始化内容。作者提醒在定位问题时要避免武断,并建议对可疑问题进行本地模拟验证。
摘要由CSDN通过智能技术生成

fastjson.toJSONString() 输出 {“empty”:false}


异常背景

  • fastjson 版本:1.2.58
  • 将List 转Map ,使用Guava工具类Multimaps.index 因为List中可能存在分组条件相同的数据,所以分组后可能是一个List集合,即Map<String,List<PO>> 的格式
  • 本地调试无误,提交测试环境后发现结果取出异常
  • 添加日志打印此时得到的map,打印方式JSON.toJSONString(map)

异常现象

  • 结果输出 map{"empty":false}
  • 通过此结果武断的认为List转Map失败,错误的定位问题,直至本地模拟后发现不是转换失败,而是JSON的打印结果的问题

异常分析

  • JSON.toJSONString()
    public static String toJSONString(Object object, SerializeConfig config, SerializeFilter[] filters, String dateFormat, int defaultFeatures, SerializerFeature... features) {
        SerializeWriter out = new SerializeWriter((Writer)null, defaultFeatures
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值