我有一个json文件:
{
"bible" : {
"@attributes" : {
"translation" : "ASV"
},
"testament" : [
{
"@attributes" : {
"name" : "Old"
},
"book" : [
{
"@attributes" : {
"name" : "Genesis"
}
},
{
"@attributes" : {
"name" : "Exodus"
}
},
{
"@attributes" : {
"name" : "Leviticus"
}
},
{
"@attributes" : {
"name" : "Numbers"
}
},
{
"@attributes" : {
"name" : "Deuteronomy"
}
},
{
"@attributes" : {
"name" : "Joshua"
}
},
{
"@attributes" : {
"name" : "Judges"
}
},
{
"@attributes" : {
"name" : "Ruth"
}
}
]
}
]
}
}
我正在使用代码来阅读它:
$(document).ready(function(){
$.getJSON("asv/index.json", function(json) {
alert("JSON Data: " + json.bible.testament[1].name);
});
});
但是这给了我不确定的。请让我知道如何阅读书名。 @attributes也适用于什么? 感谢
答案 0 :(得分:2)
试试这个:
$.getJSON('asv/index.json',
function(json) {
$.each(json.bible.testament[0].book, // $.each() looping on each books
function(i, value) {
console.log(value['@attributes'].name); // here you get the name of books
});
答案 1 :(得分:0)
您的数据的对象路径错误。我建议您将json数据粘贴到查看器中,以便更容易看到您需要获取的内容。例如,尝试http://jsonviewer.stack.hu/。
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("asv/index.json", function(json) {
alert(json.bible.testament[0]['@attributes'].name);
alert(json.bible.testament[0].book[0]['@attributes'].name);
});
});
</script>
这对我有用。请注意您没有testament[1]
索引,只有testament[0]
。
@attributes部分似乎是生成JSON的脚本正在创建的,你不需要使用JSON。如果我可以访问创建JSON的脚本,我会删除它,但也许它会在你看不到的某个系统中使用。
答案 2 :(得分:0)
json.bible.testament[1].name
未定义。
尝试json.bible.testament[1]['@attributes'].name
答案 3 :(得分:0)
如果您的浏览器支持console.log(例如Firefox),您可以执行'console.log(json)'并查看结构。
您可以访问以下名称:
json.bible.testament [0] .book [0] [ '@属性']。名
json.bible.testament [0] .book [1] [ '@属性']。名
...