• 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, ''))
    
  • 相关阅读:
    BZOJ 3330 分数
    FR #11题解
    BZOJ 1857 传送带
    BZOJ 4757 Building a Tall Barn
    FR #10题解
    BZOJ 4393 Fruit Feast
    BZOJ 3126 Photo
    BZOJ 1312 Hard Life
    BZOJ 2039 employ人员雇佣
    Count SIN Numbers
  • 原文地址:https://www.cnblogs.com/cnsyear/p/12974780.html
Copyright © 2020-2023  润新知