1

ここに私のjsonオブジェクトがあります:

var home = "[{\"id\":\"1\",\"img\":\"assets\\\/1.jpg\",\"headline\":\"This is the headline in the pedu.\",\"text\":\"To the ipedu\"},{\"id\":\"2\",\"img\":\"assets\\\/2.jpg\",\"headline\":\"This is the headline in the pedulence.\",\"text\":\"To the pendula\"}]";

次のようにオブジェクトをループしようとすると:

$.each(home, function() {
    console.log(this);
});

文字列全体ではなく、各文字をログに記録しました。

例: 文字列 {0: "["} localhost:317 文字列 {0: "{"} localhost:317 文字列 {0: """} localhost:317 文字列 {0: "i"} localhost:317 文字列 {0: "d"} localhost:317 文字列 {0: """} localhost:317 文字列 {0: ":"} localhost:317 文字列 {0: """} localhost:317 文字列 {0: "1"} localhost: 317 文字列 {0: """} localhost:317 文字列 {0: ","} localhost:317 文字列 {0: """} localhost:317 文字列 {0: "i"}

私は何を間違っていますか?オブジェクトをループする方法は?

4

2 に答える 2

2

まず第一に、あなたが持っているのは JSON オブジェクトではありません。これは、JSON 仕様に従ったオブジェクト表現を含む文字列です。

その文字列を期待されるオブジェクトに変換するには、最初に を使用して解析する必要があります$.parseJSON()

TL;DR

これを変える:

$.each(home, function() {
    console.log(this);
});

に:

$.each($.parseJSON(home), function() {
    console.log(this);
});
于 2012-11-19T14:23:37.090 に答える
0

これは、home が文字列であるためです。オブジェクトリテラル構文 (配列など) を使用して宣言するつもりだったと思います。

var home = [{\"id\":\"1\",\"img\":\"assets\\\/1.jpg\",\"headline\":\"This is the headline in the pedu.\",\"text\":\"To the ipedu\"},{\"id\":\"2\",\"img\":\"assets\\\/2.jpg\",\"headline\":\"This is the headline in the pedulence.\",\"text\":\"To the pendula\"}];
于 2012-11-19T14:22:38.703 に答える