5

了解しました。運が悪かったので、少し検索して試してみました。ここの誰かが私を正しい方向に向けてくれることを願っています。さまざまなデータを出力することになっているJSONフィードを使用しています。現在、すべての変数に対して「UNDEFINED」応答を返すだけです。これが私が使用しているJSです:

$("#loaduserdata").click(function(){
$("#userdata tbody").html("");
    $.getJSON("trendFetch", function(data){
            $.each(data.list, function(i, data){
                var jsondata = data.action;
                console.log (jsondata);
            });
     }
);

コンソールからJSONが正しくフォーマットされていないと思われるようなエラーや理由が表示されないため、問題がどこにあるのかわかりません:http: //i.imgur.com/ySpdR.png

価値があるものは何でも、JSONを生成するために使用しているコードは次のとおりです-おそらくその目的で問題がありますか?

$curl = curl_init();
$url = 'http://api.site.com';

curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url
));

$resp = curl_exec($curl);

if($resp){
    echo $resp;
    header("Content-Type: application/json", true);
}
else {
    echo 'Error - no response!';
}

curl_close($curl);  

編集-JSON出力を含む:

{
"status": "ok",
"list": {
    "list_id": "2gz",
    "title": "Test List",
    "description": "description text...",
    "image": [
        "http://t2.gstatic.com/images?q=tbn:ANd9GcTz6_4aV6oHsI2kgJRRoSFCTWbew5ChTeBrAmXYh4Gez2J7usm8nwMOsA",
        "http://cdn.list.ly/logos/default-list-image.png"
    ],
    "views": 0,
    "item_count": 1,
    "curator_count": 1,
    "follower_count": 1,
    "listly_url": "http://api.list.ly/list/2gz-test-list",
    "items": [
        {
            "item": {
                "name": "Link 1",
                "image": "http://t2.gstatic.com/images?q=tbn:ANd9GcTz6_4aV6oHsI2kgJRRoSFCTWbew5ChTeBrAmXYh4Gez2J7usm8nwMOsA",
                "note": null,
                "url": null,
                "likes": 0,
                "dislikes": 0
            }
        }
    ],
    "suggested_items": []
}
}
4

4 に答える 4

4
echo $resp;
header("Content-Type: application/json", true);

する必要があります:

header("Content-Type: application/json", true);
echo $resp;

コンテンツを出力する前に、HTTPヘッダーを送信する必要があります。

于 2012-12-23T01:50:44.580 に答える
3

出力の前にヘッダーを設定します

header("Content-Type: application/json", true);
echo $resp;
于 2012-12-23T01:50:39.603 に答える
0

Musa は私のためにこれを解決することができたので、誰かが Google を使用した場合、問題は私が必要のないときに $.each を使用しようとしていたことでした。誰かが興味を持っている場合の正しいコードは次のとおりです。

$.getJSON("trendFetch",function(data){
                var tblRow =
                    "<tr>"
                    +"<td>"+data.list.list_id+"</td>"
                    +"<td>"+data.list.title+"</td>"
                    +"<td>"+data.list.description+"</td>"
                    +"</tr>"
                $(tblRow).appendTo("#userdata tbody");

        }
);
于 2012-12-23T02:32:26.620 に答える
0

JSON レスポンスを提供していただけると助かります。

このようなタイプの問題が発生した場合、通常は (コード内で) 1 歩前に戻りますconsole.log()。たとえばconsole.log(data)function(data) {}.

出力を見ると、リストが実際にはリストではないことが問題だと思います。実際、data.list はオブジェクトです。したがって.each()、個々のアイテム (list_id、タイトルなど) を反復処理します。これらのどれも.actionプロパティを持っていません。

アクション プロパティが表示されないため、解決策を提案できません。リストオブジェクト内にある可能性がありますが、それでも配列のように扱っています (list: [{}, {}]ではなくlist: {})。この場合、返された JSON を修正するか、 を取り除く必要があり$.each()ますconsole.log(data.list.action)

于 2012-12-23T02:01:34.640 に答える