gpt4 book ai didi

javascript - 按名称获取 JSON 对象值

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

我有一个像这样的有效 JSON 对象:

{
"reasons": {
"options": [
{
"value": "",
"label": "Choose a reason",
"selected": true,
"requiresValidation": false
},
{
"value": "small",
"label": "Too little",
"selected": false,
"requiresValidation": false
},
{
"value": "big",
"label": "Too big",
"selected": false,
"requiresValidation": false
},
{
"value": "unsuitable",
"label": "I don't like it",
"selected": false,
"requiresValidation": true
},
{
"value": "other",
"label": "Other",
"selected": false,
"requiresValidation": true
}
]
}
}

我有一个变量,用于存储 options 中可用选项的一个值(例如 unsuitable)。如何检索存储在变量中的值的 requiresValidation 字段的值,而不必遍历 options 中的所有对象值?

例如,如果 var 内容是 other 我想访问值为 other 的对象的 requireValidation 字段(这是 true)。是否可以?谢谢。

最佳答案

您在这里并不是真正在处理 JSON,而是在处理 JS 对象。 JSON只是一种发送JS对象的格式。

options 是一个数组。访问它的唯一方法是通过索引,这意味着您必须一次搜索一项。有一些函数,例如 indexOf() 将返回数组中值的第一个索引,但是,您有一个对象数组,因此在这种情况下不起作用。 (在内部,它仍在进行搜索)。

function getReqVal(val) {
for (var item in mydata.reasons.options) {
if(item.value == val) {
return item.requiresValidation;
}
}
}

getReqVal("other");

需要注意的是,这会在第一个返回,所以如果你有多个 other,你将不会得到它们。

如果选项确实是唯一值,我会将您的对象重新排列为关联数组,键是“值”项,值是包含其余数据的对象:

{
"reasons": {
"options": {
"" : {
"label": "Seleziona una voce",
"selected": true,
"requiresValidation": false
},
"small" : {
"label": "Too little",
"selected": false,
"requiresValidation": false
},
"big" : {
"label": "Too big",
"selected": false,
"requiresValidation": false
},
"unsuitable" : {
"label": "I don't like it",
"selected": false,
"requiresValidation": true
},
"other" : {
"label": "Other",
"selected": false,
"requiresValidation": true
}
}
}
}

关于javascript - 按名称获取 JSON 对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122829/

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