2012-04-10 5 views
2

最近、HTML、JSON、jQueryのデモンストレーションプロジェクトを開始しました。 ここで達成したいことは、JSONファイルからデータを取得してそれを私のテーブルにロードすることです。 私はJSONの初心者ですので、何もしないために1日かかりました。データがテーブルに読み込まれませんでした。JSONデータからコンタクトテーブルを作成

{ 
    "length": 2, 
    "info": [ 
     { 
      "fullname":"Noob Here", 
      "email":"[email protected]", 
      "phone":"123456", 
      "badgeid": "11111", 
     }, 
     { 
      "fullname":"Newbie There", 
      "email":"[email protected]", 
      "phone":"589433", 
      "badgeid": "11112", 
     } 
    ] 
} 

データをロードするために私のスクリプト:

window.onload = function() { 
    var contacts; 
    setTimeout(loadData(contacts, "contact"), 2000); 
    $(contacts.info).each(function(index, element){ 
     $('#contacts').append('<tr><td>' + element.fullname + '</td><td>' 
      + element.email + '</td><td>' 
      + element.phone + '</td><td>' 
      + element.badgeid + '</td></tr>');  
    }) 
}; 

function loadData(myobject, myfile){ 
    myobject = $.parseJSON("../data/" + myfile + ".json"); 
}; 

ので、私は様々なJSONファイルからロードすることに注意してください。ここ

は私のJSONファイル、 'contact.jsonは' loadDataにはいくつかの手段があります。それ以外の場合は、JSONファイルを直接解析します。

私はすでにHTMLで宣言された '#contact'テーブルを持っていました。 エラーコンソールは言った:

Uncaught SyntaxError: Unexpected token.
jQuery.extend.parseJSONjquery.min.js:442
loadDataHomepage.html:23
window.onload

はなぜこのエラーが表示されていますか?この問題を解決するにはどうすればよいですか?

+0

+1 - 整形式で詳細な質問です。 – jmort253

答えて

1

JSONバリデーター(例:JSONLint.com)を使用してJSONを実行します。あなたはJSONの構文エラーがあります。

{ 
    "length": 2, 
    "info": [ 
     { 
      "fullname":"Noob Here", 
      "email":"[email protected]", 
      "phone":"123456", 
      "badgeid": "11111", <---- Do not put a comma before a curly brace 
     }, 
     { 
      "fullname":"Newbie There", 
      "email":"[email protected]", 
      "phone":"589433", 
      "badgeid": "11112", <---- remove comma before curly brace 
     } 
    ] 
} 

あなたのJSONの代わりに次のようになります。

{ 
    "length": 2, 
    "info": [ 
     { 
      "fullname":"Noob Here", 
      "email":"[email protected]", 
      "phone":"123456", 
      "badgeid": "11111" 
     }, 
     { 
      "fullname":"Newbie There", 
      "email":"[email protected]", 
      "phone":"589433", 
      "badgeid": "11112" 
     } 
    ] 
} 
+0

jmort253さん、ありがとうございました。しかし、このエラーはまだJSONファイルが修正された後に残っています。 – Shinigamae

+1

同じURLを使用してブラウザでJSONファイルを読み込みます。キャッシュされたコピーが表示されていないことを確認してください。あるいは、URLの終わりにクエリパラメータを追加して、 '$ .parseJSON(" ../ data/"+ myfile +" .json?t = 12345 ");'のようにキャッシュを破棄してください。また、まだ実行していない場合は、JSONLintを使用してJSONを再実行し、エラーなしで検証します。また、キャッシュをクリアしてみてください。それらをすべて実行すると、ブラウザに何かがキャッシュされていないことを確認する必要があります。 ../dataディレクトリを参照して読み込まれたページのURLです。パスが正しいことを確認してください。 – jmort253

+1

偉大な、私はすべてのキャッシュをクリーニングした後に動作します。私はマニフェストを使用してファイルをキャッシュし、古いものをロードし続けていたためです。もう一度@ jmort253に感謝します。 – Shinigamae

3

この投稿への参照

JSON.parse unexpected character error

で、私はあることを知るようになっあなたは既に解析済みのJSONを解析します

あなたはあなたのscriを置き換えることができますptを次のように入力します。

window.onload = function() { 
     var contacts; 
     $.getJSON('contact.json',function(contacts) 
     { 
      $(contacts.info).each(function(index, element){ 
       $('#contacts').append('<tr><td>' + element.fullname + '</td><td>' 
       + element.email + '</td><td>' 
       + element.phone + '</td><td>' 
       + element.badgeid + '</td></tr>');  
      }) 
     }); 
    }; 
+1

これは私のコードを簡素化し、実際に動き出しました。ありがとうと、@Usman。 – Shinigamae

+1

これは問題ではありませんが、コードをクリーンアップして助けてください。クリーンなコードはトラブルシューティングをよりスムーズに進めます。 – jmort253

+0

@ jmort253..thnx編集用.... @ shinigamaeあなたは大歓迎です – Usman

関連する問題