【问题标题】:Escape string for javascript: hex in jsonjavascript的转义字符串:json中的十六进制
【发布时间】:2015-03-01 16:48:08
【问题描述】:

这个字符串

{\x22Address\x22:\x22一些带引号的地址\x22}

在浏览器中被 JSON.parse 正确解析。为什么? json字符串中的十六进制数字是什么意思?我找不到解释。

【问题讨论】:

    标签: javascript json hex


    【解决方案1】:

    在 Javascript 中,反斜杠是转义字符。有几个转义序列,你可以find a list here

    最重要的:

    • \x 后跟两个十六进制字符,用它的 ascii 码表示一个字符
    • \u 后跟四个十六进制字符代表一个字符的 unicode 数字
    • \t, \r, \n 你肯定已经知道了。它们分别是制表符、回车符和换行符。

    【讨论】:

    • 重要提示!这是 JavaScript 字符串的属性,不是 JSON 字符串。参考json.orgECMA standard 的第 9 节。
    【解决方案2】:

    如果您在 ascii 表中查找十六进制值 22,您可以看到它是引号 ( " )。这就是它正确解析的原因。http://www.asciitable.com/

    var str= "{\x22test\x22: \x22hello\x22}";
    var test = JSON.parse(str);
    console.dir(test);
    

    { 测试:'你好'}

    【讨论】:

      【解决方案3】:

      试试

      console.log(decodeURIComponent("\x22")); // `"`
      

      ascii Chart

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-30
        • 2011-11-02
        • 2014-03-07
        • 2015-01-06
        • 2016-04-22
        • 1970-01-01
        • 2019-07-27
        相关资源
        最近更新 更多