gpt4 book ai didi

javascript - 如何访问复杂的 JSON

转载 作者:行者123 更新时间:2023-11-28 18:08:28 25 4
gpt4 key购买 nike

我是一个初学者,当我开始增加 JSON 的复杂性时,我开始对它的访问感到困惑。如何访问以下 JSON?我想访问服务的值和 key

{
employers:{
Mike: {
old: 20,
services:{
cut : {
value : 10
}
hair_straightening : {
value: 20
}
}
}
Penny: {
old: 20,
services:{
cut : {
value : 10
}
hair_straightening : {
value: 20
}
}
}
}
}

最佳答案

每个人都必须从某个地方开始:)

我不确定我是否完全理解你的意思,但这里是......

首先,在列出键时,对象上的符号似乎被巧妙地关闭了。例如,在 Mike 和 Penny 之间,您应该使用逗号分隔较大雇主对象中的每个键。

类似于:

employers: {
Mike: {
...
}, //need a comma here
Penny: {
...
}
}

此外,在每个雇主中,剪切键和直发键之间应该有一个逗号。

        services: {
cut: {
value: 10
}, //need a comma here
hair_straightening: {
value: 20
}
}

现在回答你的实际问题...要获取每个服务的 key ,您可以使用 Object.keys()。此功能将为您提供给定雇主的 key 。然后您还可以从同一函数内部获取值。 (请注意,这仅适用于一位雇主;您只想迭代两者并在每个雇主上使用相同的函数)

function getServices(employer) {
var services = employer.services;
var servicesKeys = Object.keys(services);
var serviceValueMatrix = [];
servicesKeys.forEach(function(service) {
serviceValueMatrix.push([service, employer.services[service].value])
})
return serviceValueMatrix;
}
// assuming you had var yourJSON = { employers: {...} }
// getServices(yourJSON.employers.Mike);
// returns [["cut",10], ["hair_straightening",20]]

此外,鉴于您的 JSON 对象已经采用 key:value 格式,您可能可以跳过 value: 10、value: 20 等格式的最后一组对象,而只创建对象的最后一层像这样:

services:{
cut: 10,
hair_straightening: 20
}

然后您可以获取 services.cut 和 services.hair_straightening。

为清楚起见,下面的完整代码:

const yourJSON = {
employers: {
Mike: {
old: 20,
services: {
cut: {
value: 10
},
hair_straightening: {
value: 20
}
}
},
Penny: {
old: 20,
services: {
cut: {
value: 10
},
hair_straightening: {
value: 20
}
}
}
}
}

function getServices(employer) {
var services = employer.services;
var servicesKeys = Object.keys(services);
var serviceValueMatrix = [];
servicesKeys.forEach(function(service) {
serviceValueMatrix.push([service, employer.services[service].value])
})
return serviceValueMatrix;
}

console.log(getServices(yourJSON.employers.Mike));
// returns [["cut",10], ["hair_straightening",20]]

关于javascript - 如何访问复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42147571/

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