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

属性名称的JSON语法

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

属性名称的JSON语法

@AndreasN是正确的:JSON规范规定了使用引号的目的,以便使其实际上是JSON。如果不使用引号,则在Javascript中它可能是有效的对象文字,但不是JSON。除了浏览器端Javascript之外,其他服务也使用JSON(例如,使用php,Java等的webservices),如果您构造的字符串缺少引号,则不能保证将其正确解析-
尽管我怀疑大多数实现都会足够强大以做到这一点。

仅供参考,使用Java脚本在无法阻止恶意攻击的来源上直接对JSON字符串使用eval()是危险的。再次,请参阅提供更多说明的JSON站点以及一个很短的javascript文件,该文件将JSON字符串安全地解析为Javascript对象。

编辑: 我猜从技术上来说,您最初的问题不是关于JSON,而是关于 对象文字
的Javascript语法。区别在于可从JSON字符串构造的对象将排除许多其他可能的对象文字,例如:

var a = {cat: "meow", dog: "woof"};var aname = {cat: "Garfield", dog: "Odie"};var b = {  counter: 0,  pow: function(x) { return x+1; },  zap: function(y) { return (counter += y); }};var c = {  all: [a,aname],  animals: a,  names: aname,};

对象文字“ a”和“ aname”可以用JSON表示(通过在属性名称中添加引号)。但是对象文字“ b”和“ c”不能。对象文字“b”包含函数(JSON不允许)。上面的对象文字“c”以无法在JSON中表示的方式包含对其他变量的引用,因为某些引用是共享的。如果您进行更改,

c.names
c.all[1]
它们也会更改,因为它们共享对相同变量的引用。JSON只能表示具有树结构的对象(例如,整个对象的每个子元素都是独立的)。



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

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

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