Angular 在JSON中搜索项目
我有一个Web应用程序,它使用来自另一个Web服务的数据,这些数据是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
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?这个问题有一个关于它的简要说明