JSON.stringify不适用于普通的Javascript数组

我必须在这里丢失一些内容,但是以下代码返回一个空字符串:

var test = new Array();

test['a'] = 'test';

test['b'] = 'test b';

var json = JSON.stringify(test);

alert(json);

用JSON对这个数组进行编码的正确方法是什么?

回答:

JavaScript数组旨在保存带有 数字

索引的数据。您可以向它们添加命名属性,因为数组是一种对象类型(当您要存储有关包含常规,有序,数字索引数据的数组的元数据时,这很有用),但这并不是它们的设计目标对于。

JSON数组数据类型 不能 在数组上具有命名键。

当您将JavaScript数组传递给JSON.stringify命名属性时,将被忽略。

如果要命名属性,请使用对象而不是数组。

const test = {}; // Object

test.a = 'test';

test.b = []; // Array

test.b.push('item');

test.b.push('item2');

test.b.push('item3');

test.b.item4 = "A value"; // Ignored by JSON.stringify

const json = JSON.stringify(test);

console.log(json);

以上是 JSON.stringify不适用于普通的Javascript数组 的全部内容, 来源链接: utcz.com/qa/428421.html

回到顶部