我必须在这里丢失一些内容,但是以下代码返回一个空字符串:
var test = new Array(); test['a'] = 'test'; test['b'] = 'test b'; var json = JSON.stringify(test); alert(json);
用JSON对这个数组进行编码的正确方法是什么?
JavaScript数组旨在保存带有 数字 索引的数据。您可以向它们添加命名属性,因为数组是一种对象类型(当您要存储有关包含常规,有序,数字索引数据的数组的元数据时,这很有用),但这并不是它们的设计目标对于。
JSON数组数据类型 不能 在数组上具有命名键。
当您将JavaScript数组传递给JSON.stringify命名属性时,将被忽略。
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);