首页 > 解决方案 > 如何根据另一个属性的值访问嵌套的 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);

我以为它会1Test1名称数据中给我。

TestNumber仅通过提供信息就能够获取数据的代码是Name什么?


编辑:我怎样才能使这个工作为 JSON WebPage :一个 API ?

标签: javascriptjson

解决方案


您可以遍历数组并执行类似的操作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 }
  ]);
}


推荐阅读