0

jQueryでJSONデータをhtmlファイルに表示してみました。

しかし、htmlでは、出力するものも何もありませnullunindefied

Flickr の外部 JSON データを試してみたところ、少なくとも[Object]

また、ローカルサーバーでHTMLとJSONの両方のファイルをテストしようとしましたが、何もありません

サーバーに application/json の MIME タイプを追加します

JSONをチェックしました-有効です

Firebug では、JSON 応答が表示されます (下の画像を参照)。

私が使用している同じページで、問題があれば jQuery モバイルと DW Fluid グリッド レイアウトを使用します。

私のJSONはPHP json_encodeで生成されます:

({ "title": "Art and Culture",
"items": [
{"id":"kunst-im-tunnel","lat":"51.219917"},
{"id":"kunsthalle","lat":"51.227568"},
{"id":"kunstsammlung-nordrhein-westfalen","lat":"51.22841"}]
})

JSON の PHP コード

<?php
header('Cache-Control: no-store, no-cache, must-revalidate, private, post-check=0, pre-check=0');
header('Pragma: no-cache'); 
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
header('Content-type: application/json; charset=utf-8');
$out = json_encode($post);
echo "({ \"title\": \"Art and Culture\",\"items\": " .$out." })";
?> 

私のJavaScriptコードは次のとおりです。

$.getJSON("http://example.com/app.php?cat=category&jsoncallback=?",
{format: "json"},
function(data){
    $.each(data.items, function(i,item){

        $('<li>' +  item.id + '</li>').appendTo("#list");

    });

});

Firebug のスクリーンショット: Firebug ネット結果

4

2 に答える 2

2
({ "title": "Art and Culture",
"items": [
{"id":"kunst-im-tunnel","lat":"51.219917"},
{"id":"kunsthalle","lat":"51.227568"},
{"id":"kunstsammlung-nordrhein-westfalen","lat":"51.22841"}]
})

有効な JSON ではありません。

しかし、これは有効なJSONです

 { "title": "Art and Culture",
   "items": [
              {"id":"kunst-im-tunnel","lat":"51.219917"},
              {"id":"kunsthalle","lat":"51.227568"},
              {"id":"kunstsammlung-nordrhein-westfalen","lat":"51.22841"}]
 }

そして、それはうまく機能します。これが実際のサンプルですhttp://jsfiddle.net/cqfQp/1/

jsonlintを使用して JSON を検証します。

append別の提案は、ループ内で関数を呼び出さないようにしてください。変数を作成し、関数を 1 回だけ呼び出します。このようなもの

     var strItems="";
     $.each(data.items, function(i,item){
         strItems+='<li>' +  item.id + '</li>';
     });
     $("#list").html(strItems); 

編集:ドキュメントの準備ができた関数 で getJSON を呼び出すようにしてください

 $(function(){
      $.getJSON("http://example.com/app.php?cat=category&jsoncallback=?",function(data){
        var strItems="";
        $.each(data.items, function(i,item){
            strItems+='<li>' +  item.id + '</li>';
        });
        $("#list").html(strItems);    
     });
 });
于 2012-06-06T12:29:27.910 に答える
0

無効な JSON を生成しています — JSON 式全体を囲む括弧は存在しないはずです。

于 2012-06-06T12:26:20.657 に答える