js如何生成一个对象,并转化为json字符串

时间:2023-03-09 09:15:45
js如何生成一个对象,并转化为json字符串

js如何生成一个对象,并转化为json字符串,很多人都会误写为:

var ary = [];
var obj = {};
for (var i = 0; i < 3; i++) {
obj.name = "name";
obj.age = 10;
obj.obj = i;
ary.push(obj);
}
var json = JSON.stringify(ary);
console.log(json); //输出为
/**
* [{"name":"name","age":10,"obj":2},{"name":"name","age":10,"obj":2},{"name":"name","age":10,"obj":2}]
*
**/

正确写法:

var ary = [];
for (var i = 0; i < 3; i++) {
var obj = {};
obj.name = "name";
obj.age = 10;
obj.obj = i;
ary.push(obj);
}
var json = JSON.stringify(ary);
console.log(json); //输出为
/**
*[{"name":"name","age":10,"obj":0},{"name":"name","age":10,"obj":1},{"name":"name","age":10,"obj":2}]
*
**/

PS: 在JS定义出来的变量是Object对象,分配的是一块内存空间,你将这个对象插入到一个数组中,也是在数组内开辟一个空间指向这块内存,你在遍历是数组的容量是一直增大,但是都是指向与同一块内存对象,所以他们的值是一样的,而且是这个对象最后修改的那个值,所以最后数组的值一样,将对象在循环里面定义,则是我们想要的结果