json格式转字符串的时候碰到一个很奇怪的问题,JSONObject的数据通过JSON.toJSONString()转换为String后,结果竟然为{}。

如json文本为:

{
   "page": {
     "currentPage": 1,
     "pageSize": 10
   }
 }

转换成字符串之后为:“{}”。

网上查了下资料,发现JSON.toJSONString()在转换的时候会根据一些参数去掉值为null的数据,但与我碰到的问题不符。

突然想到json有多个jar包实现了,如org.json 和 com.alibaba.fastjson,会不会是JSONObject所用的jar包和JSON.toJSONString()所用的jar包不一致导致的问题,测试了一下发现果然是这个问题。最后把JSONObject的jar包改为com.alibaba.fastjson就好了。