将产生: { "level1": [ { -6ren">
gpt4 book ai didi

javascript - 为什么 stringify() 只返回对象数组的第一级

转载 作者:行者123 更新时间:2023-12-03 12:35:39 28 4
gpt4 key购买 nike

我们正在根据一种简单的模板格式构建动态 JSON 有效负载,该格式指示我们的有效负载应产生多少级别,例如"level1.level2"> 将产生:

{
"level1": [
{
"level2": [
{
"someData": "willGoHere",
},
{
"someOtherData": "willAlsoGoHere"
}
]
}
]
}

显然我们正在使用不同的命名结构,例如:“client.ipcEvent.level3”,在某些情况下我们正在测试 4 个级别。我们做错了什么 ~ 我们能够构建我们的 javascript 对象,但无法使用 stringify() 来创建完整的结果,因为出于某些奇怪的原因,针对我们对象的 stringify() 仅返回第一个关卡数据:

{ "level1": [] }

Valid XHTML .

我尝试过更改我们的对象加载值的方式,但一切都回到了 stringify()“丢弃”在同一级别没有伴随属性/属性值的数组值。

最佳答案

问题是您的 client 是一个数组,但您在其上放置了不是数组条目的属性(您可以这样做,因为数组是对象):

enter image description here

JSON.stringify 仅包含数组的数组条目,不包含其其他属性:

const a = [];
a.nonEntryProperty = "foo";
a[0] = "bar";
console.log(JSON.stringify(a)); // ["bar"]

为确保数据正确序列化为 JSON,在对象中包含类对象属性,在数组中包含数组条目:

const structure = {
info: {
nonEntryProperty: "foo"
},
array: ["bar"]
};
console.log(JSON.stringify(structure, null, 4));

关于javascript - 为什么 stringify() 只返回对象数组的第一级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55613998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com