リモート ドメインからの私の JSONP 応答は次のとおりです。
jQuery183012824459988766945_1354016515353([{"StudentID":"BA1122","LastName":"BAG","FirstName":"RON"},{"StudentID":"B770","LastName":"BAEN","FirstName":"AI"},{"StudentID":"B994","LastName":"BALD","FirstName":"AARON"},{"StudentID":"B580","LastName":"Balzstin","FirstName":"Manda"},{"StudentID":"B932","LastName":"BAR","FirstName":"ABBAS"},{"StudentID":"B139","LastName":"BANES","FirstName":"ALAN"},{"StudentID":"B718","LastName":"Baen","FirstName":"Alex"},{"StudentID":"B524","LastName":"BAER","FirstName":"ANA"}])
私はデータを消費しようとしています:
$.getJSON('http://www.remote_domain.com/json.php?callback=?',function(res){
ParseJson(res);
function ParseJson(data){
for (var key in data) {
if (data.hasOwnProperty(key)) {
alert(key + " -> " + data[key]);
}
}
}
});
オブジェクトだけのデータを取得していないようです。
アップデート:
$num_columns = $rs->Fields->Count ();
$arrColumns = array();
for ($i=0; $i < $num_columns; $i++) {
$arrColumns[] = $rs->Fields($i);
$newArr[] = $rs->Fields($i)->name;
}
$arrResult = array();
while (!$rs->EOF) {
$arrRow = array();
for ($i=0; $i < $num_columns; $i++) {
$arrRow[$newArr[$i]] = $arrColumns[$i]->value;
}
$arrResult[] = $arrRow;
$rs->MoveNext();
}
echo $_GET['callback'] . '(' . json_encode($arrResult) . ')';
私の JSON は次のように返されます: [{"First":"John"},{"Last":"Doe"}] オブジェクトにラップされた配列。クライアント側で次のように処理できるように、オブジェクトまたは配列を返す必要があります: {"First":"John"},{"Last":"Doe"}
<script>
$.getJSON('http://remote.domain.com/json.php?callback=?',function(res){
alert('Results: '+res.Last);
});
</script>
私は json_encode($Array); の方法かもしれないと思います。クラスを使用していませんか?