首页 > 解决方案 > 针对在 react-native 中使用 fetch 检索到的 json 对象验证数据

问题描述

我正在尝试根据存储在数据库中的值验证字符串,以检查该字符串是否存在。

这是正在检索的 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"
      }
    ]
  }
}
这里我需要检查一个名为jobNumber的变量是否作为名称存在于json对象中。

这是我尝试检索 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});
                                   }
                             
我需要检查 myJson 中是否存在 jobNumber 作为名称(例如检查 jobNumber == WC256)

谢谢你的帮助

编辑:这是我尝试过的尝试,但我无法弄清楚它有什么问题:

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

标签: jsonapireact-nativefetch

解决方案


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

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)

推荐阅读