javascript - 如何在 JavaScript 中检查文件中是否存在 JSON 对象

标签 javascript json react-native

我正在用react-native构建一个应用程序,并且在进行错误检查时遇到了一些麻烦。我正在使用 reduxthunk 来存储来 self 正在搜索的 API 的 JSON 文件。有时,搜索会返回一个包含错误消息的 JSON 文件(很可能是由于拼写错误或不确定我到底在搜索什么)。我正在尝试在我的应用程序中构建一个函数,该函数将在 componentWillMount 函数中运行,该函数首先检查文件是否有错误消息,如果有,则将其发送回主屏幕以重做搜索。遇到的问题是我不知道要编写什么代码才能查看错误是什么,或者即使一开始就有错误。

这就是错误对象在 JSON 文件中的样子

"error": {
    "type": "NameResolutionException",
    "message": "Name resolution error: Taxon 'Mallard' or 'Bat' resolve to multiple nodes"
  },

这是我构建的函数

componentDidMount = () => {
    console.log("STATE", this.state);
    if(this.props.response.articles.error == undefined){
      if(this.props.response.articles.error.type === "NameResolutionException"){
        Alert.alert("Please Refine Search or Specify Taxon.")
          .then(()=>this.props.navigation.navigate("Home"));
      }
    }
 };

尽管 json 文件中包含错误对象,但 if 语句永远不会命中。

预期的输出是错误将被捕获,然后应用程序将返回主屏幕,但应用程序将失败,因为某些组件将丢失。

最佳答案

您的代码似乎不正确,您是说如果错误未定义,则比较字符串值。这是矛盾的。

它应该是这样的,考虑到错误是一个对象而不是数组

componentDidMount = () => {
console.log("STATE", this.state);
if(this.props.response.articles.error && this.props.response.articles.error.type){ // considering error object may or may not be present
  if(this.props.response.articles.error.type === "NameResolutionException"){
    Alert.alert("Please Refine Search or Specify Taxon.")
      .then(()=>this.props.navigation.navigate("Home"));
  }
  else if (this.props.response.articles.error.type === "OtherPossibleStringException"){
  }
  else {
      //Any unhandled error case
  }
 }
};

关于javascript - 如何在 JavaScript 中检查文件中是否存在 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57401781/

相关文章:

react-native - 如何通过向上滚动使用 react-native-gifted-chat 加载更多消息?

JavaScript 触发太多事件?

javascript - CSS/JS 模糊鼠标周围除外

c# - Odata Asp.NET WebApi 在实体/DTO 中返回 json 属性

javascript - 使用 JSON 打包和解包复杂对象架构

react-native - 如何在 React Native 的 Modal 组件上禁用 "Swipe down to close"?

javascript - 在 ReactJS 中提交表单后如何重置我的输入字段?

asp.net - 在 gridview 中将 Eval 作为 javascript 函数参数传递

javascript - React 中的 setState 函数不会改变我的组件的状态

JSON 解析错误 : Unexpected identifier "Not"