zoukankan      html  css  js  c++  java
  • JSON.parse解析json字符串包含 回车换行符报错

    JSON.parse解析json字符串包含 回车换行符报错

    2020年5月27日 17点31分 今天改离职妹子代码的时候遇到了一个问题,我吐了。。。

    JSON.parse()可以将Json字符串转换成Json对象

    var json = '{"remark":"1u3001u548Cu5BA2u6237u786Eu8BA4u662Fu5426u6B63u5E38u4E0Au7EBFuFF0Cu5982u679Cu662FuFF0Cu9700u8981u5BA2u6237u63D0u4F9Bu90AEu4EF6u8D70u5148u4E0AuFF1B
    2u3001u5982u679Cu4E0Du80FDu6B63u5E38u4E0Au7EBFuFF0Cu8BA9u5BA2u6237u786Eu8BA4u662Fu5426u6362u65F6u95F4uFF0Cu5220u9664u4E0Du9700u8981u7684u7684u8D44u6E90u3002","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';
    
    //妹子写的
    JSON.parse(json)
    

    这样的写法是存在问题的,如果json中存在 回车等特殊符号时,js会报解析失败的错误

    VM90:1 Uncaught SyntaxError: Unexpected token 
     in JSON at position 41
        at JSON.parse (<anonymous>)
        at <anonymous>:7:6
    

    unicode转码后排查数据中确实包含回车符号

    var json = '{"remark":"1、和客户确认是否正常上线,如果是,需要客户提供邮件走先上;
    2、如果不能正常上线,让客户确认是否换时间,删除不需要的的资源。","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';
    

    解决方法:

    保存的的时候后台过滤、前台获取的时候进行过滤。

    //改后的前台获取的时候进行过滤。
    JSON.parse(json.replace(/[
    s+]/g, ''))
    
  • 相关阅读:
    chroot 与 jail
    3-07. 求前缀表达式的值(25) (ZJU_PAT数学)
    一种监控全部账户登陆及操作命令的方法
    怎样设计接口?
    UVA10869
    网络直播电视之M3U8解析篇 (下)
    LCD显示--Ht1621b芯片显示屏驱动
    混淆
    android 调试
    eclipse+webservice开发实例
  • 原文地址:https://www.cnblogs.com/cnsyear/p/12974780.html
Copyright © 2011-2022 走看看