根据使用react-native中的fetch检索的JSON对象验证数据

eulz3vhy  于 2023-11-20  发布在  React
关注(0)|答案(3)|浏览(115)

我正在尝试根据存储在数据库中的值验证字符串,以检查该字符串是否存在。
下面是正在检索的JSON对象:

{
  "ArrayOfJobsModel": {
    "JobsModel": [
      {
        "LongName": "WC389 - This is WC389 Job",
        "Name": "WC389"
      },
      {
        "LongName": "WC256 - The WC256 JO Description",
        "Name": "WC256"
      },
      {
        "LongName": "TT134 - The TT134 description",
        "Name": "TT134"
      }
    ]
  }
}

字符串
这里我需要检查JSON对象中是否存在名为jobNumber的变量作为Name。
这是我尝试检索JSON对象的代码部分,但我不确定如何搜索它。

fetch('http://orhapi.azurewebsites.net/api/services/LoadJobs?type=all', { 
  method: 'GET',
  header: {
      'Content-Type': 'application/json',
  },
}).then((response) => {
  response.json();
}).then((myJson) => {
 //not sure what to do here
}).catch((err)=>{
      alert('could not connect to server')
});

  if(this.state.numberExists){
  this.props.navigation.navigate('StockItem',{jobNumber: this.state.jobNumber});
       }


我需要检查jobNumber是否作为名称存在于myJson中(例如检查jobNumber == WC256
编辑:
这是我尝试过的一个尝试,但我不知道它有什么问题:

then((responseJson) => {
                             responseJson.ArrayOfJobsModel.JobsModel.map((job, index)=>{
                               if(job.Name == this.state.jobNumber){
                                 this.state.numberExists;
                               }
                             }

vs91vp4v

vs91vp4v1#

您可以使用map方法在对象数组中搜索术语。
举例来说,

let itemFound = false;
 ArrayOfJobsModel.JobsModel.map((job, index) => {
    if(job.Name == 'Your search string'){
      itemFound = true;
    }
 });

字符串

tzdcorbm

tzdcorbm2#

我几乎可以肯定有一种更有效的方法来做到这一点,但如果你只是在寻找一个解决方案,现在,

object = {
  "ArrayOfJobsModel": {
    "JobsModel": [
      {
        "LongName": "WC389 - This is WC389 Job",
        "Name": "WC389"
      },
      {
        "LongName": "WC256 - The WC256 JO Description",
        "Name": "WC256"
      },
      {
        "LongName": "TT134 - The TT134 description",
        "Name": "TT134"
      }
    ]
  }
};

found = false;
size = object.ArrayOfJobsModel.JobsModel.length;
for(i=0;i<size;i++)
{
  if(object.ArrayOfJobsModel.JobsModel[i].Name == 'WC256')
  {
    found = true
    break
  }
}
console.log(found)
if(found == true)
console.log(object.ArrayOfJobsModel.JobsModel[i].LongName)

字符串

tuwxkamq

tuwxkamq3#

在数组上的find方法应该是你在这里需要使用的全部。

console.log(object.ArrayOfJobsModel.JobsModel.find( model => model.Name == 'WC256'));

字符串

相关问题