質問: '' + '' + list[i].a[j].picture + '' + '' + '' + list[i].a[j].name + '' + '' + '名前:' + list[i].a[j].here_date + '' + '' + '年齢:' + list[i].a[j].blood_type + '' + '' + '' $("div#a_a").append(h); } } }); }, function() { $("div#a_a").empty(); } ); }); ``` ### 該当のソースコード(html) ``` ○○課 △△課 □□課 ``` ### 補足 色々ネットで調べたところ、.ajaxを使えば良いかと思ったのですが .ajaxは文字化けした際や詳細なオプションを指定する際に使うもので 今回のような簡単なjsonを読み込む際は.getJSONで良いものなのでしょうか? .getJSONのまま間違いを正し、各ブラウザで正常に動作できることはできるのでしょうか? お手数をおかけいたしますが、ぜひご教授ください
回答: ブラウザの開発ツール(デベロッパーツール、Webインスペクタ等、Safariでは環境設定の詳細でメニューバーの"開発"を有効にする必要がある)のコンソールログに何かしらのエラーが出ていないでしょうか?もし、`JSON.parse()`のエラーが出ていれば下記を確認してください。 **JSONのシンタックスが間違っており、シンタックスエラーが発生し、解析に失敗した**と推測されます。jsonlint等とツールでシンタックスチェックを行ってください。オンラインであれば、JSONLint PRO - The JSON Validatorで簡単に確認できます。少なくとも、質問文のJSONにはシンタックスの間違いがあります。 `jQuery.getJSON()`は`jQuery.get()`を経由して、`jQuery.ajax()`を使っているだけですので、細かいオプションが不要であれば、`jQuery.getJSON()`を使用しても問題ありません。これらの関数では、GETで入手したデータを`JSON.parse()`を使ってJSONを解析し、JavaScriptでのオブジェクトに変換しています。もし、`JSON.parse()`が解析に失敗した場合、うまくデータを渡すことはできませんので、正しいJSONを渡す必要があります。 JSONはJavaScriptの文法と互換ではありますが、JavaScriptよりも制限されており**とてもシビア**です。例えば配列について、`[2,3,5,]`のような余計なカンマはJavaScriptでは許されますが、JSONでは許されません。他にもコメントが使えないなどの制限があります。JSONを手動で作っている場合は、このようなシンタックスの間違いは気付きにくいですので、必ずチェックツールを使ってチェックすることをお勧めします。エディタによってはチェックのプラグインも用意されていますで、積極的にご利用ください。 もし、何らかの元データ(エクセルとかDBとか)がある場合は、そこから正しいJSONを自動生成できるように考えたほうがいいでしょう。人が手動で管理できるJSONは設定に使う規模ぐらいまでであり、大きなデータの管理を手動で行うには向いていません。何らかの自動化を検討してください。