1

私はこのJavaScriptを使用しています:

$.getJSON("/aTest.json", function (jsonObj) {
    $("#testJSONBtn").click(function () {
        var val = "";
        for (var i = 0; i <= jsonObj.events.length; ++i) {
            val += jsonObj.events[i].title + ", " + jsonObj.events[i].date + ", " + jsonObj.events[i].explanation + "<br/>";
        }
        $("#JSONOutput").append(val);
    });
});

json ファイルにアクセスするには:

{
    "events":
    [
        {"title":"Okmulgee Public Schools Starts 3rd Quarter" , "date":"1-2-2013" , "explanation":"Okmulgee Public Schools begins its third quarter."},
        {"title":"Okmulgee Public Schools-Closed in Observance of Martin Luther King Jr. Holiday" , "date":"1-21-2013" , "explanation":"The Okmulgee Public Schools will be closed in observance of the Martin Luther King Jr. holiday."},
        {"title":"Okmulgee Public Schools County Professional Day" , "date":"2-1-2013" , "explanation":"Okmulgee Public Schools County Professional Day is today."}
    ]
}

最終的にIIS Expressでjsonファイルを提供した後、構文を1000回以上調べましたが、エラーは表示されませんが、これを取得しようとすると次のようになります:

Uncaught TypeError: Cannot read property 'title' of undefined

JavaScript/jQuery 関数の次の行でエラーが発生します。

val += jsonObj.events[i].title + ", " + jsonObj.events[i].date + ", " + jsonObj.events[i].explanation + "<br/>";

次の Web ページと StackOverflow の質問を調べました。

JSON オブジェクトが定義されていないのはなぜですか?

未定義として返される JSON

Json データを呼び出すと、未定義の "

http://api.jquery.com/jQuery.getJSON/

http://www.w3schools.com/json/default.asp

W3Schools の例と一致すると、構文は正しいように見えます。

4

1 に答える 1

6

ここに余分な = があります:

for (var i = 0; i <= jsonObj.events.length; ++i) {

次のようにする必要があります。

for (var i = 0; i < jsonObj.events.length; ++i) {

配列をオーバーランしています。

于 2013-01-03T22:58:11.250 に答える