javascript - 如何根据另一个属性的值访问嵌套的 JSON 属性?
问题描述
起初,我的问题可能听起来不清楚。我是新手JSON
,但让我解释一下。
我有以下JSON
文件(我无法修改):
{
"jsonexample": [
{
"Name": "Test1",
"Text": "This is test 1.",
"TestNumber": 1
},
{
"Name": "Test2",
"Text": "This is test 2.",
"TestNumber": 2
}
]
}
我怎样才能找到TestNumber
基于Name
?
此代码不起作用:
console.log(jsonexample.Name.Test1.TestNumber);
我以为它会1
从Test1
名称数据中给我。
TestNumber
仅通过提供信息就能够获取数据的代码是Name
什么?
编辑:我怎样才能使这个工作为 JSON WebPage :一个 API ?
解决方案
您可以遍历数组并执行类似的操作if(object.Name = name){ return object.TestNumber}
,如下面的演示所示。
(这假设您的源实际上是一个您需要解析的 JSON 字符串。如果它已经是一个 JavaScript 对象,您可以跳过该步骤。)
const
myData = JSON.parse(getDataArrayAsJson()),
num = getNumberByName(myData, "Test1");
console.log(num);
function getNumberByName(data, name){
for(let object of data){
if(object.Name = name){ return object.TestNumber}
}
}
function getDataArrayAsJson(){
return JSON.stringify ([
{ Name : "Test1", Text: "This is test 1.", TestNumber : 1 },
{ Name : "Test2", Text : "This is test 2.", TestNumber : 2 }
]);
}
推荐阅读
- swift - Swift:将字节数组转换为 CIImage
- javascript - JavaScript 为数组中的每个值添加键
- javascript - What kind of Javascript rich text editor support formula?
- http - Mule 调用 rest api 失败,“响应代码 404 映射为失败。”
- ios - 从 Firebafirebase Crash Reporting OLD 迁移到 Firebase/Crashlytics
- lisp - 检查子列表中具有值的关键字的出现
- javascript - Amplify.configure 不是函数
- c# - 如何解决引用或程序集依赖性
- jboss - JBoss EAP 迁移
- angular - eventEmitter 可以在路由器插座上工作吗?