gpt4 book ai didi

JavaScript : Extract properties from JSON object

转载 作者:行者123 更新时间:2023-12-03 01:42:20 27 4
gpt4 key购买 nike

问题陈述:我有一个 JSON 对象,其中包含 n 个属性。我需要将此 JSON 对象中的一些属性作为 JSON 字符串传递到服务器。

尝试过:我用过 Object.defineProperty()方法将我不想在 JSON 字符串 中传递的对象属性的 enumerable 设为 false。请查看下面的代码片段以获得更清晰的图片。

var jsonObj = {
"name": "Rohit",
"age": 27,
"city": "Gurgaon"
};

Object.defineProperty(jsonObj, 'name', {
enumerable: false
});

console.log(JSON.stringify(jsonObj));

上述代码面临的问题:

假设我的对象中有 100 个属性,并且我只想将 100 中的 20 属性传递到服务器。然后我必须在下面的代码行中编写 80 次来删除不需要的属性,这将影响应用程序的性能。

Object.defineProperty(jsonObj, 'name', { enumerable: false });

我还研究了有关 SO 的已提出的问题,但没有找到此问题陈述的任何合适答案。

有没有更好的方法来实现这个目标?

最佳答案

始终可以选择创建新对象并仅提取您需要的 key 。请参阅One-liner to take some properties from object in ES 6为此。

<小时/>

JSON.stringify接受“replacer”函数作为第二个参数。这允许您在序列化期间更改值,包括将其过滤掉。假设您要保留的属性较少,您应该将它们列在数组或 Set 中。

var jsonObj = {
"name": "Rohit",
"age": 27,
"city": "Gurgaon"
};
var toKeep = ['age', 'city'];

console.log(JSON.stringify(
jsonObj,
(key, value) => !key || toKeep.indexOf(key) > -1 ? value : undefined,
));

关于JavaScript : Extract properties from JSON object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50781251/

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