javascript - JSON 中的意外标记#

标签 javascript json

我正在尝试解析一个 json 字符串,但出现错误:

> Uncaught SyntaxError: Unexpected token # in JSON at position 13
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6

Follows the code:

    JSON.parse("{\"chars\":\" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿıŁłŒœŠšŸŽžƒˆˇˉ˘˙˚˛˜˝ΔΩμπ‐–—‘’‚“”„†‡•…‰‹›⁄€™Ω∂∆∏∑−∕∙√∞∫≈≠≤≥◊fifl}")

最佳答案

问题是你的转义。您必须转义字符值中的双引号和反斜杠。我从方括号中删除了第二个反斜杠,因为这也会导致解析错误。

此外,为了简化转义传递给 JSON.parse 的值,请在具有字符值而不是构造字符串的对象上使用 JSON.stringify。 参见:JSON Stringify on MDN

字符值的以下重构:

var charObj = {chars: " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿıŁłŒœŠšŸŽžƒˆˇˉ˘˙˚˛˜˝ΔΩμπ‐–—‘’‚“”„†‡•…‰‹›⁄€™Ω∂∆∏∑−∕∙√∞∫≈≠≤≥◊fifl"}; 

JSON.parse(JSON.stringify(charObj));

关于javascript - JSON 中的意外标记#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054132/

相关文章:

javascript - 在 Ajax 事件之后调用其余的 javascript

javascript - Dojo增强网格可编辑问题

java - 如何使用 Feign 框架添加 JSON 形式的 URL 参数?

javascript - HTML 固定标题 - 将位置 th 与 td 对齐

javascript - 单击链接时突出​​显示工具提示中的文本

javascript - Apache Cordova 在 MVC5 中连接到 Asp.net Web 应用程序

json - 仅从json中删除/排除属性(如果存在)

json - 将 json 解析为 swift 常量

java - Kafka-Streams 加入 2 个带有 JSON 值的主题 |背压机制?

java - 如何在 Gson 中制作自定义列表反序列化器?