首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSON的JavaScript关联数组

JSON的JavaScript关联数组
EN

Stack Overflow用户
提问于 2010-12-13 10:01:04
回答 5查看 113.3K关注 0票数 80

如何将JavaScript关联数组转换为JSON?

我尝试过以下几种方法:

代码语言:javascript
复制
var AssocArray = new Array();

AssocArray["a"] = "The letter A"

console.log("a = " + AssocArray["a"]);

// result: "a = The letter A"

JSON.stringify(AssocArray);

// result: "[]"
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-13 10:03:24

数组应该只有带有数字键的条目(数组也是对象,但你真的不应该把它们混在一起)。

如果将数组转换为JSON,该过程将只考虑数字属性。其他属性被简单地忽略,这就是为什么你会得到一个空数组作为结果。如果您查看数组的length,这一点可能会更明显:

代码语言:javascript
复制
> AssocArray.length
0

通常所说的“关联数组”实际上只是JS中的一个对象:

代码语言:javascript
复制
var AssocArray = {};  // <- initialize an object, not an array
AssocArray["a"] = "The letter A"

console.log("a = " + AssocArray["a"]); // "a = The letter A"
JSON.stringify(AssocArray); // "{"a":"The letter A"}"

对象的属性可以通过数组表示法或点表示法访问(如果键不是保留关键字)。因此,AssocArray.aAssocArray['a']是相同的。

票数 146
EN

Stack Overflow用户

发布于 2010-12-13 10:04:43

JavaScript中没有关联数组。然而,有一些对象具有命名属性,所以不要用new Array初始化你的“数组”,然后它就变成了一个通用对象。

票数 8
EN

Stack Overflow用户

发布于 2017-12-05 02:00:45

同意将对象作为对象,将数组作为数组,这可能是最佳实践。但是,如果您有一个对象,其命名属性被视为数组,下面是如何完成此操作的:

代码语言:javascript
复制
let tempArr = [];
Object.keys(objectArr).forEach( (element) => {
    tempArr.push(objectArr[element]);
});

let json = JSON.stringify(tempArr);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4425289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档