开发者社区> 问答> 正文

一个非常奇怪的json问题,要是不注意估计你一天都找不出原因?报错

昨天在我的群里大家在讨论一个问题。

一个新手遇到了一个json字符串,结构很简单。

[
    {
        "id": "1832",
        "origin": "PEK",
        "origin_type": "airport",
        "destination": "CAN",
        "destination_type": "city"  
    }
]



但是在 www.bejson.com 上就是验证不通过

压缩转义后拿到Java里去解析 报错


最后仔细排查后发现。估计是因为json里包含制表符造成的。

去除后 正常解析

展开
收起
爱吃鱼的程序员 2020-06-22 13:38:07 662 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    哎,实际中很少出现这种状况,谁没事手拼json啊~自己找事么.

    之前遇到过用的json包可能太老了而且好像不更新了....

    推荐用gson那个jar包转换效果比较好..

    北京飞广州很容易会想的是特殊字符造成的<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/13.gif"alt=""/><atarget="_blank"rel="nofollow">http://www.bejson.com/go.php?u=http://www.baidu.comunexpectedtoken的时候谜题就解开了

    这种问题.通常我都找个编辑器,在里面设置"显示不可见字符",然后一下就看出来了.

    会把空格,换行,Tab都显示出来

    mark显然JSON转换的工具自身有问题,还不如自己写一个<arel="nofollow">http://www.oschina.net/code/snippet_147539_15552这不是制表符,制表符是很标准的空白字符。应该是中文全角的空格,所以报错了。那就更不应该了.输入法应该设置为,在中文状态下仍使用英文标点.我用搜狗就有个选项.做为开发人员,这个应该是必做的.另外还有几个,文件名不用特殊字符,不用空格,不用中文.否则就会出现诡异问题,无法排查.同意。我比较认可这个原因。我遇到过几个人喜欢写代码的时候打开中文输入法--。很多时候空格就输入了全角了……没经验的比较难排查。我帮人处理过两个sql的全角空格问题--。压缩啊,然后去除多余的

    2020-06-22 13:38:23
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载