栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号