0

私は自分のウェブサイトを開発するために codeigniter フレームワークを使用しています。現在、jQueryを使用してAJAXリクエストを送信し、サーバーからデータを取得しています。データがPHP連想配列にある方法と、JSONオブジェクトにある方法の2つの方法を試しました。AJAX リクエストから返されるデータをご覧ください。

{
    "o": [
        {
            "q_id": "83",
            "t_id": "4",
            "question": "jjjjs.jfdaskldjf",
            "option1": "jjjjasdfasdf",
            "option2": "jjj",
            "option3": "lll",
            "option4": "lll",
            "answer": "lll",
            "marks": "22"
        },
        {
            "q_id": "84",
            "t_id": "4",
            "question": "This is testing",
            "option1": "2",
            "option2": "7",
            "option3": "8",
            "option4": "9",
            "answer": "2",
            "marks": "2"
        },
        {
            "q_id": "85",
            "t_id": "4",
            "question": "hello this is another test",
            "option1": "a",
            "option2": "b",
            "option3": "c",
            "option4": "d",
            "answer": "a",
            "marks": "2"
        },
        {
            "q_id": "86",
            "t_id": "4",
            "question": "another test",
            "option1": "8",
            "option2": "9",
            "option3": "0",
            "option4": "1",
            "answer": "1",
            "marks": "2"
        },
        {
            "q_id": "87",
            "t_id": "4",
            "question": "last question ",
            "option1": "z",
            "option2": "x",
            "option3": "c",
            "option4": "v",
            "answer": "c",
            "marks": "2"
        }
    ]
}

私は次のようにアクセスしています:

alert(data["o"][0]);

しかし、発生するエラーは次のとおりです。

キャッチされていない TypeError: 未定義のプロパティ '0' を読み取ることができません

値を取得したり、オブジェクトを配列に格納したりする方法について、誰かが私にいくつかの提案をしてもらえますか?

4

3 に答える 3

2

o ここは配列ではなくオブジェクト広告であるため..use.

これを試して

alert(data.o[0])

ループ$.each関数を使用して内部のオブジェクトの値を取得しますo

data.o[0].each(function(i,v){
   console.log(v.q_id);
});
于 2013-02-09T19:11:56.533 に答える
1

Std Object を使用して、送信された JSON を JavaScript コードにキャッチしてみてください

私のコードは次のようになります:

var モデル = 新しい StdObject(); model->blabla = "何か";

モデルを返します。

于 2015-06-16T02:49:33.660 に答える
0
header("content-type:application/json");

  • あなたのjsonでサーバーから送信されますか?

次のチェック:


  • $.getJSON または $.ajax を使用してdatatype='json'

最後に、オブジェクトにアクセスしますdata.o['0'].q_id

于 2013-02-10T05:34:38.443 に答える