2

私は自分のphpをjsonpとしてエクスポートしてから、データをロードするjsファイルを呼び出しています。

最後のデータオブジェクトのみの出力を取得しています。アクションデータをループして、すべてを<li> data.action</li>形式で出力したいと思います。誰かがこれを行う方法を理解するのを手伝ってくれるなら、どうもありがとう。

JSONP

({
    "posts": [{
        "action": "go to acting school",
        "action": "go to a beach",
        "action": "go kyacking",
        "action": "go skiing in vermont",
        "action": "sleep in a cave",
        "action": "dress up as favorite celebrity in public",
        "action": "see the cherry blossums in Washington DC",
        "action": "watch all the rocky movies",
        "action": "go sky diving",
        "action": "climb Mount Everest",
        "action": "climb K2",
        "action": "see or participate in war reenactment",
        "action": "spend New Years Eve in Times Square",
        "action": "jump out of a moving plane",
        "action": "jump out of a moving car",
        "action": "try eating a new food"
    }]
})

JQUERY

 $(document).ready(function () {
     $.getJSON("http://site.com/lesson.php?count=5&jsoncall=?", function (data) {
         $.each(data.posts, function (i, data) {
             var jsondata = "<li>" + data.action + "</li>";
             $(jsondata).appendTo("ol#results");
         });
     });
     return false;
 });
4

3 に答える 3

5

それは適切なjsonではありません。javascriptオブジェクトに変換すると、次のものが含まれます。

{
    "posts": [{"action": "try eating a new food"}]
}

これは私が代わりにあるべきだと私が信じているものです:

{
    "actions": ["go to acting school","go to a beach","go kyacking","go skiing in vermont","sleep in a cave","dress up as favorite celebrity in public","see the cherry blossums in Washington DC","watch all the rocky movies","go sky diving","climb Mount Everest","climb K2","see or participate in war reenactment","spend New Years Eve in Times Square","jump out of a moving plane","jump out of a moving car","try eating a new food"]
}

明らかに、これはjsonが実際に何を表しているのかについての知識がありません。私が行った変更の背後にある考え方は、それらがすべてアクションである場合、それらすべてを、というプロパティに格納されている1つの配列に配置することです。actions

次に、次のように出力します。

var myStr = "";
$.each(data.actions, function (i, action) {
    myStr += "<li>" + action + "</li>";
});
$("#results").append(myStr);
于 2012-06-26T14:57:09.543 に答える
2

必要なのは、JSONを再構築して有効にすることです。そうすれば、問題なく機能します。

これが例を示す動作中のjsFiddleです。

于 2012-06-26T15:04:40.160 に答える
0

JSONキーは一意である必要がありますが、コードには当てはまりません。

于 2012-06-26T15:03:00.713 に答える