Javascript 如何加载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”,它

我的JSON文件如下所示:

[{ "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:我在代码中没有看到任何错误。当您尝试它时会发生什么?您是否收到任何错误消息?不,调试器/控制台中没有任何错误。除了我上面编写的模板之外,没有其他显示。