私は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 is undefinedです。最後のコードは「jQuery for Dummies」すぎると確信していますが、今朝探していた他の回答では、これ以上明確にはなりませんでした。