[英]JSON.stringify() and JavaScript Objects
我想也许我错过了一些我现在正在接受的JavaScript。
我在Chrome控制台中尝试了此代码:
a = [];
a.name = "test";
JSON.stringify(a);
// which returns value []
a = new Object();
a.name = "test";
JSON.stringify(a);
// which returns value {"name":"test"}
有什么区别? 我以为新的Object()是Microsoft JScript的东西? 我错过了什么? 一定是错过某个地方的规格。 谢谢。
a = new Object()
和
a = []
不等同。 但,
a = {}
和
a = new Object()
是。
new Object()
相当于{}
(除非它不是因为奇怪的重定义问题 - 但现在忽略它。) []
等同于new Array()
,然后你要添加一个.name
属性。 JSON以特殊方式对数组进行字符串化,不会捕获对数组本身的任意属性。
对于JSON数据,数组意味着具有数字索引,而对象具有键/值对。
a = [];
a[ 0 ] = "test";
JSON.stringify(a); // returns value ["test"]
是的,您使用[]
来定义实际上是数组的对象,但是根据您来自的语言可能会令人困惑,因为它不是关联数组。
默认对象是key-> data的所有映射,并使用大括号{}
进行实例化
如果你这样做了
a = {};
a.name = "test";
JSON.stringify(a);
它应该工作。
设置数组的name
属性对其序列化(JSON字符串化)表单没有任何作用。 它没有在数组中放入一个条目。 要做到这一点,你需要a.push('test')
。
对象是Javascript的标准部分(例如,参见MDC文档 )。 创建对象的常规方法是使用{}
,但new Object()
也可以使用。
所以...
var a = [];
a.push('test');
JSON.stringify(a); //"["test"]"
a = {};
a.name = 'test';
JSON.stringify(a); //"{"name":"test"}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.