gpt4 book ai didi

javascript - 如何删除嵌套的 JSON.stringify() 属性

转载 作者:行者123 更新时间:2023-12-03 07:25:55 26 4
gpt4 key购买 nike

我正在尝试使用 Typescript 修改字符串。该字符串由 JSON.stringify() 方法创建。

我想删除 “id”“lightStatus”“inputPort”的 “value” 属性“输出端口”。 (我只需要他们的属性“id”。)

console.log(JSON.stringify(this.light));
// Results in -> {"id":1,"name":"Light Switch","lightStatus":true,"inputPort":{"id":2,"value":0},"outputPort":{"id":2,"value":false},"resistance":100}

我尝试按照以下方式进行操作,但它无法识别“inputPort.id”和“outputPort.id”。这就是我的尝试及其结果。

var savedLight = JSON.stringify(this.light, ["name", "inputPort.id", "outputPort.id", "resistance"]);
// Results in -> {"name":"Light Switch","resistance":100}

结果应该包括属性“name”、“inputPort id”、“outputPort id”和“resistance”。像这样:

{"name":"Light Switch","inputPort": 2, "outputPort": 2, "resistance":100}

谁能帮我摆脱不必要的属性?

最佳答案

您可以传递一个返回您想要的确切值的“替换器”函数。

var data = {"id":1,"name":"Light Switch","lightStatus":true,"inputPort":{"id":2,"value":0},"outputPort":{"id":2,"value":false},"resistance":100};

var result = JSON.stringify(data, function(k, v) {
switch (k) {
case "": case "name": case "resistance":
return v
case "inputPort": case "outputPort":
return v.id
default:
return undefined;
}
}, 2)

document.querySelector("pre").textContent = result
<pre></pre>

"" 表示顶级对象。对于 “name”“resistance”,它只是返回原始值。

对于 "inputPort""outputPort",它返回 id 属性。

任何其他内容都会undefined,这意味着它会从结果中省略。

关于javascript - 如何删除嵌套的 JSON.stringify() 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43158104/

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