Javascript 使用json.parse()解析json会引发错误
我有一个很大的json字符串,它是从decodeURIComponent函数解码的。现在我尝试使用Json.parse函数将这个字符串解析为Json对象。当我运行时,它会显示“意外语法标记m”。我有两个疑问 1.由于它是一个大字符串,是否有更好的工具来获得语法更正。 2.当我在这个url中给相同的json字符串进行验证时,我得到的是有效的json对象。。这怎么可能 我在第2点中得到的有效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字符串:我个人使用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内容进行各种转换。不过我很喜欢在命令行上工作。