JSON.Parse,'未捕获的SyntaxError:意外令牌o

JSON.Parse,'未捕获的SyntaxError:意外令牌o,第1张

JSON.Parse,'未捕获的SyntaxError:意外令牌o

如果没有单引号,那么您正在创建一个数组,其中包含两个对象。这是Javascript自己的语法。当您添加引号时,该对象(数组+
2个对象)现在是字符串。您可以

JSON.parse
用来将字符串转换为Javascript对象。您不能用于
JSON.parse
将Javascript对象转换为Javascript对象。

//String - you can use JSON.parse on itvar jsonStringNoQuotes = '[{"Id":"10","Name":"Matt"},{"Id":"1","Name":"Rock"}]';//Already a javascript object - you cannot use JSON.parse on itvar jsonStringNoQuotes = [{"Id":"10","Name":"Matt"},{"Id":"1","Name":"Rock"}];

此外,您的最后一个示例失败,因为您要在JSON字符串中添加文字单引号字符。这是非法的。JSON规范指出仅允许使用双引号。如果您要

console.log
遵循以下…

console.log("'"+[{"Id":"10","Name":"Matt"},{"Id":"1","Name":"Rock"}]+"'");//Logs:'[object Object],[object Object]'

您会看到它返回数组的字符串表示形式,该字符串表示形式转换为逗号分隔的列表,并且每个列表项都是对象的字符串表示形式,即

[objectObject]
。请记住,Javascript中的关联数组只是对象,每个键/值对都是一个属性/值。

为什么会这样?因为您是从字符串开始的

"'"
,所以您尝试将数组追加到它的后面,该数组请求它的字符串表示形式,然后再追加另一个string
"'"

请不要将JSON与Javascript混淆,因为它们是完全不同的东西。JSON是一种人类可读的数据格式,旨在与创建javascript对象时使用的语法匹配。JSON是一个字符串。Javascript对象不是,因此在代码中声明时不会用引号引起来。

看到这个小提琴:http :
//jsfiddle.net/NrnK5/



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5642619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存