【发布时间】:2012-11-25 23:07:49
【问题描述】:
我正在尝试获取从 MS-Access 数据库查询返回的 JSON 字符串。我得到了记录集($rs),但试图循环返回 JSON,却不知道记录集中的所有字段。以下返回我想要的,但在[["aaa":"bbb","ccc":"ddd"]] 不是我正在寻找的[{ ... }]。
$num_columns = $rs->Fields->Count ();
//echo $num_columns . "<br>";
$arrColumns = array();
for ($i=0; $i < $num_columns; $i++) {
$arrColumns[] = $rs->Fields($i);
}
$arrResult = array();
while (!$rs->EOF) {
$arrRow = array();
for ($i=0; $i < $num_columns; $i++) {
$arrRow[] = $arrColumns[$i]->value;
}
$arrResult[] = $arrRow;
$rs->MoveNext();
}
//var_dump($arrResult);
echo json_encode($arrResult);
//print_r($arrResult);
[更新]:
完成了动态部分,但结果仍然存在问题。因为我是json_encode($Array),所以我无法使用我的 JQuery 获得我想要的结果。
$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); 的方式而不使用课程?
【问题讨论】: