Javascript 遍历JSON对象

Javascript 遍历JSON对象,javascript,ajax,json,loops,each,Javascript,Ajax,Json,Loops,Each,由于我对JSON和jQuery相当陌生,因此我很难通过一个对象进行迭代,我已经能够使用以下代码加载该对象: $.ajax({ url: source, dataType: 'json', success: function(obj) { // Laat een succes-melding zien wanneer de data goed ingeladen is console.log("SUCCESS"); }, er

由于我对JSON和jQuery相当陌生,因此我很难通过一个对象进行迭代,我已经能够使用以下代码加载该对象:

$.ajax({
    url: source,
    dataType: 'json',
    success: function(obj) {
        // Laat een succes-melding zien wanneer de data goed ingeladen is
        console.log("SUCCESS");
    },
    error: function(obj) {
        // Laat een error-melding zien wanneer de data niet goed ingeladen is
        alert("ERROR");
    },
    complete: function(obj) {
        console.log(obj);           
    }
});
不幸的是,JSON的结构对我来说有点复杂,但由于它是一个外部源(通过YQL),因此对此无法进行任何更改:

{
  "query": {
    "count": 1,
   "created": "2013-06-21T11:42:57Z",
    "lang": "en-US",
    "diagnostics": {
      "publiclyCallable": "true",
      "url": {
        "execution-start-time": "1",
        "execution-stop-time": "1868",
        "execution-time": "1867",
        "proxy": "DEFAULT",
        "content": "contentsource"
      },
      "user-time": "1868",
      "service-time": "1867",
      "build-version": "37740"
    },
    "results": {
      "viewentries": {
        "toplevelentries": "0",
        "viewentry": [
          {
            "date": "2013-06-11",
            "noteid": "A2FA",
            "position": "1",
            "siblings": "0",
            "unid": "15D7F7A15C0DAE",
            "entrydata": [
              {
                "columnnumber": "0",
                "name": "Datum_van_instantie",
                "text": "2013-06-11"
              },
              {
                "columnnumber": "1",
                "name": "kopregel",
                "text": "Title of newsitem 1"
              },
              {
                "columnnumber": "2",
                "name": "tussenkopje",
                "text": "Introduction text of newsitem 1"
              },
              {
                "columnnumber": "3",
                "name": "broodtekst",
                "text": "Content of newsitem 1"
              },
              {
                "columnnumber": "4",
                "name": "imagetag",
                "text": "Image URL of newsitem 1"
              }
            ]
          },
          {
            "date": "2013-05-29",
            "noteid": "A2F6",
            "position": "2",
            "siblings": "0",
            "unid": "9237CD3822ED8DD",
            "entrydata": [
              {
                "columnnumber": "0",
                "name": "Datum_van_instantie",
                "text": "2013-05-29"
              },
              {
                "columnnumber": "1",
                "name": "kopregel",
                "text": "Title of newsitem 2"
              },
              {
                "columnnumber": "2",
                "name": "tussenkopje",
                "text": "Introduction text of newsitem 2"
              },
              {
                "columnnumber": "3",
                "name": "broodtekst",
                "text": "Content of newsitem 2"
              },
              {
                "columnnumber": "4",
                "name": "imagetag",
                "text": "Image URL of newsitem 2"
              }
            ]
          }
        ]
      }
   }
  }
}
我想完成的事情是将类似于以下内容的内容打印到HTML文件中的一个元素:

Title of newsitem 1
Title of newsitem 2
我确信从那时起,我可以很好地从文件中提取其余的项目。对于我正在尝试的对我有意义的事情,在各种obj.viewentry[0]备选方案上使用$.each循环,我会得到一个未定义的错误。当我尝试访问更具体的内容时,例如

$.each(obj.viewentry, function(index, value) {
    console.log(this.entrydata[0]);             
});
我得到的返回是一个jQuery错误,TypeError:e是未定义的。虽然我相当肯定最后一段代码是“傻瓜jQuery”,但今天早上我一直在寻找的其他答案并没有给我更多的明确性。

尝试使用以下代码:

$.each(obj.query.results.viewentries.viewentry, function (index, value){
    $.each(value.entrydata, function (index, value) {
        if (value.name == "kopregel") console.log(value.text);
    });
});

它在这里工作:

没有理由为此使用jQuery(ajax部分除外):

for(obj.query.results.viewentries.viewentry中的var viewEntryKey){
对于(var i=0;i
输出:

新闻项目1的标题
新闻标题第2项

for (var viewEntryKey in obj.query.results.viewentries.viewentry) {
    for (var i = 0; i < obj.query.results.viewentries.viewentry[viewEntryKey].entrydata.length; i++) {
        if (obj.query.results.viewentries.viewentry[viewEntryKey].entrydata[i].name == 'kopregel') {
            console.log(obj.query.results.viewentries.viewentry[viewEntryKey].entrydata[i].text);
        }
    }
}