Javascript 无法从json访问数据
我在JSON方面遇到了问题。我用PHP做了这个,我将它发送到我的JavaScript,但是我无法获得值Javascript 无法从json访问数据,javascript,html,json,Javascript,Html,Json,我在JSON方面遇到了问题。我用PHP做了这个,我将它发送到我的JavaScript,但是我无法获得值 [ { "book":[ { "dir":"extract\/pg1065.epub" }, { "dir":"extract\/pg1065.epub\/1065\/0.css" }, { "dir":"extra
[
{
"book":[
{
"dir":"extract\/pg1065.epub"
},
{
"dir":"extract\/pg1065.epub\/1065\/0.css"
},
{
"dir":"extract\/pg1065.epub\/1065\/1.css"
},
}
{
"book":[
{
"dir":"extract\/pg6130-images.epub"
},
{
"dir":"extract\/pg6130-images.epub\/6130\/0.css"
},
}
]
我正在尝试使用
var obj = JSON.parse(result);
alert(obj.book[0].dir[1]);
有人有什么想法吗?编辑:我错过了,但第一条评论解释了你错过了书本数组的结束方括号。加上这一点,你就可以走了。首先验证JSON 您不需要执行JSON.parse,只需执行以下操作即可
var data = <?php echo "Your generated JSON code"; ?>;
获取第一本书的第一个目录
var firstDir = data[0]["book"][0]["dir"];
首先你需要验证你的json,我已经验证了你的json,它给出了错误。 在json中,dIr是id。
您已为同一对象定义了3个目录id,这可能是错误。问题中显示的代码不是有效的JSON。每个
book
数组都缺少结束方括号,并且(由于@punund)数组成员之间缺少逗号。正确的JSON应该是:
[
{
"book":[
{
"dir":"extract\/pg1065.epub"
},
{
"dir":"extract\/pg1065.epub\/1065\/0.css"
},
{
"dir":"extract\/pg1065.epub\/1065\/1.css"
}
]
},
{
"book":[
{
"dir":"extract\/pg6130-images.epub"
},
{
"dir":"extract\/pg6130-images.epub\/6130\/0.css"
}
]
}
]
通常不应该直接打印JSON,而是在PHP中创建一个JSON对象,然后使用JSON\u encode
函数。以下PHP将为您的场景生成有效的JSON:
<?php
$result = array(
(object)array("book" => array((object)array("dir" => "extract/pg1065.epub"),
(object)array("dir" => "extract/pg1065.epub/1065/0.css"),
(object)array("dir" => "extract/pg1065.epub/1065/1.css"))),
(object)array("book" => array((object)array("dir" => "extract/pg6130-images.epub"),
(object)array("dir" => "extract/pg6130-images.epub/6130/0.css")))
);
echo json_encode($result);
?>
你的JSON无效,我用它来排序
现在您应该能够很好地访问数据了。问题中的JSON不是有效的JSON:它缺少每本书的结束方括号。此外,它在数组成员之间缺少逗号。您应该查看可能的重复项,以便在PHP中获得数据的正确JSON编码。@AleksG:这是答案,不是注释。请把它贴出来;这样,OP就可以将其标记为已接受的答案。OP是否必须解析JSON取决于他们是如何得到它的。php与此有什么关系?OP使用php生成JSON代码,我向您展示如何以正确的格式在页面上得到它。您的先生是一位英雄。哈哈,tx工作起来很有魅力,非常感谢您的帮助
[
{
"book":[
{
"dir":"extract\/pg1065.epub"
},
{
"dir":"extract\/pg1065.epub\/1065\/0.css"
},
{
"dir":"extract\/pg1065.epub\/1065\/1.css"
}
]
},
{
"book":[
{
"dir":"extract\/pg6130-images.epub"
},
{
"dir":"extract\/pg6130-images.epub\/6130\/0.css"
}
]
}
]
<?php
$result = array(
(object)array("book" => array((object)array("dir" => "extract/pg1065.epub"),
(object)array("dir" => "extract/pg1065.epub/1065/0.css"),
(object)array("dir" => "extract/pg1065.epub/1065/1.css"))),
(object)array("book" => array((object)array("dir" => "extract/pg6130-images.epub"),
(object)array("dir" => "extract/pg6130-images.epub/6130/0.css")))
);
echo json_encode($result);
?>
[
{
"book": [
{
"dir": "extract/pg6130-images.epub"
},
{
"dir": "extract/pg6130-images.epub/6130/0.css"
}
]
},
{
"book2": [
{
"dir": "extract/pg6130-images.epub"
},
{
"dir": "extract/pg6130-images.epub/6130/0.css"
}
]
}
]