Javascript 如何加载JSON文件中包含对象的每个部分?
我的JSON文件如下所示:Javascript 如何加载JSON文件中包含对象的每个部分?,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我的JSON文件如下所示: [{ "articles": [ { "1": { "sections": [ {"1": "Lots of stuff here."} ] } }, { "2": { "sections": [ {"1": "And some more text right here"} ] } } }] 基本前提是,它在整个数组中有一个元素称为“articles”,它
[{ "articles": [
{ "1": { "sections":
[ {"1": "Lots of stuff here."} ]
}
},
{ "2": { "sections":
[ {"1": "And some more text right here"} ]
}
}
}]
基本前提是,它在整个数组中有一个元素称为“articles”
,它等于“sections”
的数组
换句话说,这是一部宪法,所以它看起来是这样的:
第十条
-A节
-B节
-C节
第Z条
我希望能够抽出每一篇文章,并将其加载到
<div class="alert text-black" id="article">
<p class="lead" id="articleHeader"><strong>Article 1</strong></p>
<dl>
<dt id="article_section">Section 1</dt>
<dd id="article_sectionINFO">this stuff belongs to section 1</dd>
</dl>
</div>
第1条
第一节
这些东西属于第一部分
这是我到目前为止的剧本:
var loadEvents = function(d){
$.each(d, function(i){
var articleN = i;
var articleID = "article" + i;
var articleHeaderID = "articleHeader" + i;
var articleHeader = "<p class='lead' id='articleHeader'><strong>Article " + i + "</strong></p>";
var mySections = new Array();
$.each(d, function(i){
var sectionN = i;
var sectionID = "article" + articleN + "section" + sectionN;
var sectionINFO = sectionID + "INFO";
mySections[k] =
"<dt id='" + sectionID +"'> Section " + sectionN + "</dt>" +
"<dd id='" + sectionINFO +"'>" + d[sectionN].
})
$("#eventHolder").append(new_block(articleID, articleHeaderID, articleHeader)); //to call the new element
})}
$.getJSON('data/constitution.json', loadConstitution);
var loadEvents=函数(d){
$。每个(d,功能(i){
var Article n=i;
var articleID=“article”+i;
var articleHeaderID=“articleHeader”+i;
var articleHeader=“文章“+i+”
”;
var mySections=新数组();
$。每个(d,功能(i){
n=i;
var sectionID=“article”+articleN+“section”+sectionN;
var sectionINFO=sectionID+“INFO”;
mySections[k]=
“节”+节N+“”+
“”+d[第n节]。
})
$(“#eventHolder”).append(new_块(articleID,articleHeaderID,articleHeader));//调用新元素
})}
$.getJSON('data/constitution.json',loadConstitution);
基本上,我只想为每篇文章复制一个更大的框(如上面的
代码所示),每个部分都有一个列表(
)。如何正确访问JSON文件中的数据?由于您有一个数组,其中包含一个对象,该对象包含article
属性,该属性是一个包含article的数组,因此您需要深入到该属性来循环它们。在回调函数中使用两个属性,以便访问项目对象:
$.each(d[0].articles, function(i, article) {
由于每个项都是一个对象,其中包含一个sections
属性,该属性是一个包含节的数组,因此您需要深入了解每个项中的该属性。为章节使用不同的索引变量,这样您仍然可以访问用于文章索引的i
变量:
var mySections = article.sections;
$.each(mySections, function(j, section) {
在该循环中,j
是节的索引,section
是节字符串,i
仍然是文章的索引
这将使您在循环中走上正确的轨道,其余的大部分只是为每个值使用正确的变量。由于您有一个数组,其中包含一个对象,该对象包含一个包含项目的数组,您需要深入到该属性来循环它们。在回调函数中使用两个属性,以便访问项目对象:
$.each(d[0].articles, function(i, article) {
由于每个项都是一个对象,其中包含一个sections
属性,该属性是一个包含节的数组,因此您需要深入了解每个项中的该属性。为章节使用不同的索引变量,这样您仍然可以访问用于文章索引的i
变量:
var mySections = article.sections;
$.each(mySections, function(j, section) {
在该循环中,j
是节的索引,section
是节字符串,i
仍然是文章的索引
这应该会让你在循环中走上正确的轨道,其余的大部分只是对每个值使用正确的变量。一个不完整的问题怎么能被否决?@starskythehutch我想有些人只是扫了一眼,看到张贴的代码,然后说“是的!太好了!”:(由于某种原因,它切断了我问题的最后一部分。我修正了它。一个不完整的问题怎么能被投票通过?@starskythehutch我想有些人只是扫了一眼,看到张贴的代码,然后说“是的!太好了!”:(出于某种原因,它切断了我问题的最后一部分。我修复了它。你能举个例子说明我如何访问节数据吗?它是
d[j]
还是mySections[j]
?@Luxelin:你可以使用mySections[j]访问它。)
或干脆部分
。我使用了与上面所示相同的HTML和相同的JSON文件,但这不起作用。您可以忽略第31行:document.write(此部分)@Luxelin:我在代码中没有看到任何错误。当你尝试它时会发生什么?你收到任何错误消息吗?不,调试器/控制台中没有任何错误。除了我上面写的模板之外,什么都没有显示。你能举个例子说明我如何访问节数据吗?是d[j]
还是mySections[j]
?@Luxelin:您可以使用mySections[j]
或简单地使用部分来访问它。我使用了与上面所示相同的HTML和相同的JSON文件,但这不起作用。您可以忽略第31行:document.write(thisSection);@Luxelin:我在代码中没有看到任何错误。当您尝试它时会发生什么?您是否收到任何错误消息?不,调试器/控制台中没有任何错误。除了我上面编写的模板之外,没有其他显示。