Javascript的JSON.stringify不接受键索引(关联)数组? [英] Javascript's JSON.stringify doesn't take key-indexed (associative) arrays?

查看:95
本文介绍了Javascript的JSON.stringify不接受键索引(关联)数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在JavaScript中,你可以拥有这样的对象:

In JavaScript, you can have objects, like this:

var a = { foo: 12, bar: 34 };

或带有键(命名)索引的数组,如下所示:

Or arrays with key (named) indexes, like this:

var b = [];
b['foo'] = 56;
b['bar'] = 78;

它们有点类似,但显然不一样。

They're somewhat similar, but obviously not the same.

现在奇怪的是,JSON.stringify似乎没有接受数组。没有错误或任何东西,JSON.stringify(b)只会产生[]。

Now the strange thing is, JSON.stringify doesn't seem to take the array. No errors or anything, JSON.stringify(b) just results in [].

参见这个jsfiddle示例。我做错了什么,或者我只是误解了数组是如何工作的?

See this jsfiddle example. Am I doing something wrong, or do I just misunderstand how arrays work?

推荐答案

Javascript不支持关联数组(与PHP一样)。

var b = []; 明确声明一个数组,当你试图创建一个Object时。

var b = []; Declaring explicitly an array, when you are trying to create an Object.

Javascript中的数组只能包含Arrays的Index方法,而Objects更多的是
关联数组。

Arrays in Javascript can only contain the Index approach of Arrays, while Objects are more of Associative arrays.

如果您将 var b = []; 更改为 var b = {}; 它将解决问题。

If you change var b = []; to var b = {}; it will solve the problem.

var b = {} 明确声明一个Object。

var b = {} Declaring explicitly an Object.

这篇关于Javascript的JSON.stringify不接受键索引(关联)数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆