【问题标题】:json success variable returns undefined , works after console.log pastejson 成功变量返回 undefined ,在 console.log 粘贴后工作
【发布时间】:2018-09-20 18:26:20
【问题描述】:

我有一个 JSON 成功存储在变量数据中。

console.log(data) 显示:

{"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"}

如果我尝试像这样使用它day = data["day_name"];,它会返回为undefined

当我将console.log(data) 直接复制到数据变量中时

var data = {"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"};

再次运行它,它工作正常。

我被困住了。 感谢您的帮助

【问题讨论】:

  • 您向我们展示的内容很有效。你能提供一个更完整的例子来说明这个问题吗?
  • 问题是成功存储在数据变量中的值是 ....{"day_name":"mon","h7":"h7","h8":"h8" ,"h9":"h9"} 当我将值复制并粘贴到 var 数据中时它返回为未定义但它确实有效。它们在某种程度上是不同的。这让我感到困惑
  • 我们可以理解它让您感到困惑,但除非您能证明这一点,否则除了随机猜测之外我们无能为力(如下面发布的答案)。到目前为止,您基本上已经描述了当您将变量设置为{"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"} 时它不起作用,但是当您将它设置为{"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"} 时它确实起作用。很明显,你忽略了一些你没有向我们展示的东西。
  • 我回到了我原来的代码。除了使用变量名数据之外,我还使用了 Ramiz 提出的 jsonData 并且它有效。感谢您的帮助

标签: json syntax


【解决方案1】:

您的JSON 数据可能仍然是一个字符串。你以前试过JSON.parse(...)吗?如下例所示:

const jsonData = JSON.parse(data);
const dayName = jsonData['day_name'];

【讨论】:

  • 我确实使用了 json.parse,但它在输出周围放置了方括号并阻止它工作。我可以回去再试一次。我将使用您的代码,因为它为我指明了正确的方向。我想要单独的键和值。谢谢
  • "...它在输出周围加上方括号..." @user2042410 是的,它是一个数组。在这种情况下,您可以像这样访问您的数据 --> jsonData[0]['dayName']
  • 但是应该它是一个数组吗?虽然这可能确实有助于解决问题的根源,但对于 @user2042410 来说,重要的是不要只是在“起作用”之前尝试随机的东西作为魔杖。
  • @David 是的,很高兴看到更多代码,因为如果数据实际上只是一个对象的字符串表示,那么 JSON.parse(data) 不应该在输出周围放置一些括号问题中提供了。
  • json 来自这个 php 文件。 echo json_encode($rows);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2018-07-19
  • 2019-03-19
相关资源
最近更新 更多