Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在JSON中搜索项目_Angular - Fatal编程技术网

Angular 在JSON中搜索项目

Angular 在JSON中搜索项目,angular,Angular,我有一个Web应用程序,它使用来自另一个Web服务的数据,这些数据是JSON格式的。我将数据订阅为results[],我可以通过获取html中的每个索引来访问每个字段,例如,{{results?.ABC.D[0].Name[0]},它返回Susan。(请参考下面的数据样本) 我想做的是搜索结果,找到名称,然后返回G。基本上,我希望在G与Name位于同一数组D中时获取G { "ABC": { "D": [ { "Nam

我有一个Web应用程序,它使用来自另一个Web服务的数据,这些数据是JSON格式的。我将数据订阅为
results[]
,我可以通过获取html中的每个索引来访问每个字段,例如,
{{results?.ABC.D[0].Name[0]}
,它返回
Susan
。(请参考下面的数据样本)

我想做的是搜索
结果
,找到
名称
,然后返回
G
。基本上,我希望在
G
Name
位于同一数组
D
中时获取
G

{
    "ABC": {
        "D": [
            {
                "Name": [ "Susan" ],
                "F": [ "School_0" ],
                "G": [ "14" ]
            },
            {
                "Name": [ "Lydia" ],
                "F": [ "School_1" ],
                "G": [ "284" ]
            }
        ]
    }
}

您的意思是要返回G,条件是您有Name[0]值? 在这种情况下:

 {{results?.ABC.D[0].Name[0] ? results?.ABC.D[0].G : '' }} 

您的意思是要返回G,条件是您有Name[0]值? 在这种情况下:

 {{results?.ABC.D[0].Name[0] ? results?.ABC.D[0].G : '' }} 

我想这就是你需要的:

假设我们拥有的数据样本如下:

 let dataSample =
      {
        "ABC": {
          "D": [
            {
              "Name": [
                "Susan",
                "Sophia"
              ],
              "F": [
                "School_0"
              ],
              "G": [
                "14"
              ]
            },
            {
              "Name": [
                "Lydia"
              ],

              "F": [
                "School_1"
              ],
              "G": [
                "284"
              ]
            }
          ]
        }
      }
如果要遍历所有名称[],那么还应该在“Name”数组中找到所需名称的索引并检索它,然后找到包含检索到的名称的“D”的索引。像这样:

    let names = ["Sophia", "Susan", "Lydia"];

    names.forEach(function(name) {
    this.findNameG(name)
    })

    function findNameG(nameToFind: String) {        
    let index = dataSample.ABC.D.findIndex(d => d.Name[d.Name.findIndex(name => name === nameToFind)]);
    console.log(dataSample.ABC.D[index].G);
}
因此,您需要首先找到名称的索引,然后返回该索引处的G值

<强>请考虑这是区分大小写的,如果您想使之明智的话,您应该使用TooWrasCasee()或ToupPuleCe()方法同时使用源和目标。< /强>


希望这能有所帮助。

我想这正是您需要的:

假设我们拥有的数据样本如下:

 let dataSample =
      {
        "ABC": {
          "D": [
            {
              "Name": [
                "Susan",
                "Sophia"
              ],
              "F": [
                "School_0"
              ],
              "G": [
                "14"
              ]
            },
            {
              "Name": [
                "Lydia"
              ],

              "F": [
                "School_1"
              ],
              "G": [
                "284"
              ]
            }
          ]
        }
      }
如果要遍历所有名称[],那么还应该在“Name”数组中找到所需名称的索引并检索它,然后找到包含检索到的名称的“D”的索引。像这样:

    let names = ["Sophia", "Susan", "Lydia"];

    names.forEach(function(name) {
    this.findNameG(name)
    })

    function findNameG(nameToFind: String) {        
    let index = dataSample.ABC.D.findIndex(d => d.Name[d.Name.findIndex(name => name === nameToFind)]);
    console.log(dataSample.ABC.D[index].G);
}
因此,您需要首先找到名称的索引,然后返回该索引处的G值

<强>请考虑这是区分大小写的,如果您想使之明智的话,您应该使用TooWrasCasee()或ToupPuleCe()方法同时使用源和目标。< /强>

希望这有帮助。

你可以试试这个

jsonData = {
"ABC":{
   "D":[
      {
         "Name":[
            "Susan"
         ],
         "F":[
            "School_0"
         ],
         "G":[
            "14"
         ]
      },
      {
         "Name":[
            "Lydia"
         ],

         "F":[
            "School_1"
         ],
         "G":[
            "284"
         ]
      }
   ]
}
}
你可以这样检查,但我相信一定有一个简单的解决方案

for (var key1 in this.jsonData) {
  if (this.jsonData.hasOwnProperty(key1)) {
      for (var key2 in this.jsonData[key1]){
        if (this.jsonData[key1].hasOwnProperty(key2)){
          if(key2 == "D"){
            for (var key3 in this.jsonData[key1][key2]){
              if (this.jsonData[key1][key2].hasOwnProperty(key3)){
                if(this.jsonData[key1][key2][key3]["Name"][0] == "Susan"){
                  console.log(this.jsonData[key1][key2][key3]["G"][0])
                }
              }
            }
          }
        }
      }
  }
}
你可以试试这个

jsonData = {
"ABC":{
   "D":[
      {
         "Name":[
            "Susan"
         ],
         "F":[
            "School_0"
         ],
         "G":[
            "14"
         ]
      },
      {
         "Name":[
            "Lydia"
         ],

         "F":[
            "School_1"
         ],
         "G":[
            "284"
         ]
      }
   ]
}
}
你可以这样检查,但我相信一定有一个简单的解决方案

for (var key1 in this.jsonData) {
  if (this.jsonData.hasOwnProperty(key1)) {
      for (var key2 in this.jsonData[key1]){
        if (this.jsonData[key1].hasOwnProperty(key2)){
          if(key2 == "D"){
            for (var key3 in this.jsonData[key1][key2]){
              if (this.jsonData[key1][key2].hasOwnProperty(key3)){
                if(this.jsonData[key1][key2][key3]["Name"][0] == "Susan"){
                  console.log(this.jsonData[key1][key2][key3]["G"][0])
                }
              }
            }
          }
        }
      }
  }
}


我不明白你的问题:(如果e在d中,你想得到g吗?我刚刚更新了对象的命名。我需要得到一个特定的g,但不是名称。我需要指向Name才能得到g。这有意义吗?你想在你的Typescript代码或Html代码中得到它吗?返回结果。ABC.d.filter(d=>d.Name[0]=='Susan')。map(d=>d.g)?为属性选择有意义的名称和类型会让事情变得更简单。我查了一下,没有找到它。我不明白你的问题:(如果e在d中,你想得到g吗?我刚刚更新了对象的命名。我需要得到一个特定的g,但不是名称。我需要指向名称才能得到g。这有意义吗?你想在你的Typescript代码或Html代码中得到它吗?返回结果.ABC.d.filter(d=>d.Name[0]==“Susan”).map(d=>d.g)?为属性选择有意义的名称和类型会让事情变得更容易。我查找了它,但没有找到。是的,但我想查看所有D[]让我理解,如果D元素中有名称,您想获得所有D数组元素的所有G吗?仅在迭代D[]时针对特定的D[]。然后我想在D中得到一些元素,在本例中是的,但我想遍历所有的D[]让我理解,如果D元素中有名称,你想得到所有D数组元素的所有G吗?仅在迭代D[]时针对特定的D[]。然后我想在D中得到一些元素,在本例中是G。我想遍历所有的name[]它现在可以工作了,但我应该如何对多个名称执行此操作?因此我有特定的给定名称,需要搜索它们并显示相应的GSO。因此,您可以将上述代码放入一个函数中,然后循环特定的给定名称,并分别为每个名称执行函数。以适合您的环境的方式声明函数,我只是writing a语法:)看看这里:明白了,但它会遍历并检索我定义的名称的所有ID吗?你有===“Susan”,我想遍历所有名称[]它现在可以工作了,但我应该如何对多个名称执行此操作?因此我有特定的给定名称,需要搜索它们并显示相应的GSO。因此,您可以将上述代码放入一个函数中,然后循环特定的给定名称,并分别为每个名称执行函数。以适合您的环境的方式声明函数,我只是writing a语法:)看看这里:明白了,但是它会检查并检索我定义的名称的所有ID吗?你有===“Susan”There什么是hasOwnProperty?这个问题有一个关于它的简要说明什么是hasOwnProperty?这个问题有一个关于它的简要说明