小编典典

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

javascript

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

var test = new Array();
test['a'] = 'test';
test['b'] = 'test b';
var json = JSON.stringify(test);
alert(json);

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


阅读 827

收藏
2020-05-01

共1个答案

小编典典

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);
2020-05-01