2012-03-10 14 views
2

AJAX呼び出しで返される応答JSONデータを取得するのに問題があります。ここで私は火かき棒で戻ってきています。私は放火犯でこのエラーを取得していjQueryでColdFusion JSON応答を表示

$.ajax({ 
     url: "action.cfc?method=getEmployees&returnformat=json&queryFormat=column",   type: "POST", 
      success: function(response){ 
         console.log(response);// is the data above 
         console.log(response.DATA.NAME[1]); // this doesn’t work 
         console.log(response.DATA['NAME']);//and this doesn’t work 
    } 
}); 

名をログコンソールしようとすると、「response.DATAが定義されていない」:

{"COLUMNS":["ID","NAME","REGION","EMAIL"],"DATA":[["1234","John Doe","West","[email protected]"]]} 

は、ここに私のスクリプトです。私は何が欠けていますか?あなたの助けを前にありがとう!

答えて

3

response.DATAは、配列の配列です。

console.log(response.DATA[0][1]); 

EDIT:$アヤックス

+0

お返事ありがとうございます、それは魅力的でした! – user752746

+2

jQueryで結果を使用する場合は、CF Webサービスからのクエリではなく、構造体を返すと便利です。 –

1

たぶん、あなたがオブジェクトに文字列からそれを解析する必要があります:あなたは、各レベルのインデックスに必要なので、

success: function(response){ 
    console.log(response);// is the data above 
    response = JSON.parse(response) 
    console.log(response);// is the data above 
} 
+0

ありがとうBilly、ちょうど別の問題に遭遇し、解決されたオブジェクトへの応答を解析しました。 – user752746

+0

私はIE8に問題があることを指摘したいと思います。 – user752746

+0

彼らはIE8が新しいIE7で、IE7が新しいIE6だと言います!それらには多くの問題がありますが、IEの後のバージョンが最終的にもう少しDOM準拠になっているようです。 –

0
に「JSON」:あなたは、キー/値のペアを使用したい場合は、あなたはまた、データ型を設定する必要がありCFで structの代わりに、配列

を作成する必要があります

 
Looping through the response recieved, using $.each() jquery function, will be able to access the data returned from CF. 
For the above response: 
Example, 
$.each(response,function(mainKey,mainValue){ 
    console.log(mainKey); //displays 'COLUMNS' & 'DATA' 
    console.log(mainValue);// displays ["ID","NAME","REGION","EMAIL"] & ["1234","John Doe","West","[email protected]"] 
    $.each(value,function(innerKey,innerValue){ 
     console.log(innerValue); //displays 'id','value'....,'1234',..and so on 
    }); 
}); 
関連する問題