Javascript 使用json.parse()解析json会引发错误

Javascript 使用json.parse()解析json会引发错误,javascript,json,parsing,Javascript,Json,Parsing,我有一个很大的json字符串,它是从decodeURIComponent函数解码的。现在我尝试使用Json.parse函数将这个字符串解析为Json对象。当我运行时,它会显示“意外语法标记m”。我有两个疑问 1.由于它是一个大字符串,是否有更好的工具来获得语法更正。 2.当我在这个url中给相同的json字符串进行验证时,我得到的是有效的json对象。。这怎么可能 我在第2点中得到的有效json对象是我在程序中需要的。请给我一些如何解决这个问题的建议 这是我的json字符串:我个人使用npm包j

我有一个很大的json字符串,它是从decodeURIComponent函数解码的。现在我尝试使用Json.parse函数将这个字符串解析为Json对象。当我运行时,它会显示“意外语法标记m”。我有两个疑问 1.由于它是一个大字符串,是否有更好的工具来获得语法更正。 2.当我在这个url中给相同的json字符串进行验证时,我得到的是有效的json对象。。这怎么可能

我在第2点中得到的有效json对象是我在程序中需要的。请给我一些如何解决这个问题的建议


这是我的json字符串:

我个人使用npm包jsonlint验证大型json文件

npm install -g jsonlint
用法很简单,它会准确地告诉您JSON冲突存在的位置

Usage: jsonlint [file] [options]

file     file to parse; otherwise uses stdin

Options:
   -v, --version            print version and exit
   -s, --sort-keys          sort object keys
   -i, --in-place           overwrite the file
   -t CHAR, --indent CHAR   character(s) to use for indentation  [  ]
   -c, --compact            compact error display
   -V, --validate           a JSON schema to use for validation
   -e, --environment        which specification of JSON Schema the validation
                            file uses  [json-schema-draft-03]
   -q, --quiet              do not print the parsed json to STDOUT  [false]
   -p, --pretty-print       force pretty printing even if invalid

它抱怨的“m”是第一个角色。您需要删除开头的mandrill\u events=部分,使其成为有效的JSON。

开头的mandrill\u events=是破坏JSON的原因。parse。。。。删除它。

回答您关于该工具的问题,我喜欢这个

只需粘贴yout JSON并按向右箭头即可。我可以在两个方向上工作,您也可以在右侧编辑JSON

如果您的JSON对象有问题,它会告诉您确切的位置。它在引擎盖下使用jsonlint

在您的情况下,问题可能是初始变量赋值,正如其他答案所说,因为这不是有效的JSON。您需要删除它,只保留阵列。JSON编辑器在线抛出此错误,更具描述性

Error: Parse error on line 1:
mandrill_events=[{"e
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

希望这能有所帮助。

这不是json,而是javascript变量赋值语句。或者我想,如果您不想费心安装node和npmSure,那么当您有internet连接时,它也可以工作。不过,命令行工具很适合放在工具箱中,因为它可以对JSON内容进行各种转换。不过我很喜欢在命令行上工作。