json success变量返回undefined,在console.log粘贴后工作

json success变量返回undefined,在console.log粘贴后工作,json,syntax,Json,Syntax,我在变量数据中存储了一个JSON成功 console.log(数据)显示: {"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"} 如果我尝试像这样使用它,day=data[“day_name”]返回为未定义 当我将console.log(data)直接复制到数据变量时 var data = {"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"}; 再运行一次,效果很好 我卡住了。 感谢您的帮助您的JSON数

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

console.log(数据)
显示:

{"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"}
如果我尝试像这样使用它,
day=data[“day_name”]返回为
未定义

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

var data = {"day_name":"mon","h7":"h7","h8":"h8","h9":"h9"};
再运行一次,效果很好

我卡住了。
感谢您的帮助

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

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

你给我们看的东西很有用。你能提供一个更完整的例子来说明这个问题吗?问题是,success中存储在数据变量中的值是……{“day_name”:“mon”,“h7”:“h7”,“h8”:“h8”,“h9”:“h9”},当我将值复制并粘贴到var数据中时,它仍然是未定义的,它确实起作用。他们有些不同。这让我感到困惑我们可以理解这让你感到困惑,但除非你能证明这一点,否则除了随机猜测(如下面发布的答案),我们无能为力。到目前为止,您基本上已经描述了当您将变量设置为
{“day\u name”:“mon”,“h7”:“h7”,“h8”:“h8”,“h9”:“h9”}
时,它不起作用,但是当您将它设置为
{“day\u name”:“mon”,“h7”:“h7”,“h8”:“h8”,“h9”:“h9”}
时,它确实起作用。很明显,你忽略了一些你没有展示给我们的东西。我回到了我的原始代码。除了使用变量名数据外,我还使用了像Ramiz这样的jsonData,而且它很有效。感谢您的帮助,我确实使用了json.parse,但它在输出周围放了方括号,使其无法工作。我可能会回去再试一次。我将使用您的代码,因为它为我指明了正确的方向。我要分别使用键和值。谢谢“…它在输出周围放了方括号…”@user2042410是的,它是一个数组。在这种情况下,您可以像这样访问数据-->
jsonData[0]['dayName']
,但它应该是一个数组吗?虽然这可能确实有助于找到问题的根源,但对于@user2042410来说,重要的是,在它“起作用”之前,不要把随机的东西当作魔杖来尝试。@David这是真的,如果能看到更多的代码就好了,因为只要一个
JSON.parse(data)
如果数据实际上只是问题中提供的对象的字符串表示形式,则不应在输出周围放一些括号。json来自此php文件。echo json_编码($rows);