JSON.stringify(array)返回[]

时间:2014-02-06 15:01:01

标签: javascript json

我正在尝试对多个数组进行字符串化,但未成功

var arr=new Array();
arr['do']='smth';
arr['asd']=[];
arr['asd']['dsa']='alo';
var string=JSON.stringify(arr)
console.log(arr);
console.log(string);

JSON.stringify返回[]

5 个答案:

答案 0 :(得分:2)

如果要在javascript中使用命名键,则应使用object,因为JSON序列化程序会忽略数组中的任何命名键。根据经验,您应该使用[0][1]等数组,但['foo']['bar']等对象。

var obj = {
    'do': 'smth',
    'asd': {
        'dsa': 'alo'
    }
};

console.log( JSON.stringify(obj) );
//{"do":"smth","asd":{"dsa":"alo"}} 

答案 1 :(得分:2)

您正在创建一个数组,并将其用作json对象。如果需要对象,则应创建对象。

var obj={};
obj['do']='smth';
obj['asd']=[];
obj['asd']['dsa']='alo';
var string=JSON.stringify(obj)
console.log(obj);
console.log(string);

答案 2 :(得分:1)

使用对象:

var object = {};
object['do']='smth';
object['asd']=[];
object['asd']['dsa']='alo';
var string=JSON.stringify(object)
console.log(object);
console.log(string);

答案 3 :(得分:0)

你不能给出数组名称中的元素,它们的名称是indizes。因此,如果您想给它们命名,请使用JS-Object,否则使用定义中的indizies如下:

arr[0]='smth';
arr[1]=[];
arr[1][0]='alo';

答案 4 :(得分:0)

请记住,JSON代表javascript对象表示法,您应该拥有具有所需属性的对象,而不是创建数组,因此请使用{}替换数组并添加到此