【问题标题】:Accessing data inside json object error访问json对象内的数据错误
【发布时间】:2018-04-24 11:00:50
【问题描述】:

我正在尝试访问 json 对象中的一些数据,但我对我面临的问题感到有些困惑。我有一个像下面这样的 json 对象

{
"status": "success",
"data": {
"image": null,
"video": null,
"author": null,
"publisher": "Microlink Documentation",
"title": "React | Microlink Documentation",
"date": null,
"lang": "en",
"description": null,
"logo": "https://microlink.io/favicon.ico",
"url": "https://docs.microlink.io/sdk/getting-started/react/"
}
}

这里我写了代码让console.log("meta",metaData.data);注销

"image": null,
"video": null,
"author": null,
"publisher": "Microlink Documentation",
"title": "React | Microlink Documentation",
"date": null,
"lang": "en",
"description": null,
"logo": "https://microlink.io/favicon.ico",
"url": "https://docs.microlink.io/sdk/getting-started/react/"

但我想单独使用title。所以我使用了console.log("meta",metaData.data.title); 但我收到一个错误提示

Uncaught (in promise) TypeError: Cannot read property 'title' of undefined

这里似乎有什么问题?

【问题讨论】:

  • 它应该可以工作。可以提供上面这个 JSON 对象上面写的代码吗?
  • console.log("meta",metaData.data); 应该在输出的开头包含单词meta,但我在您提供的输出中看不到它。您确定第二个打印输出来自对console.log 的调用吗?
  • 正如@Jayesh 提到的,您在问题中显示的内容没有明显错误。你能发布更多的上下文代码吗?例如,这两个 console.log 语句是否真的在同一个上下文中并不明显。

标签: javascript json reactjs object


【解决方案1】:

你所做的是绝对正确的,但应该被包裹在这样的条件中

if(metaData.data){
console.log(metaData.data.title);
}

因为您从异步调用中获取数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2017-02-05
    • 2015-05-21
    相关资源
    最近更新 更多