获取从PHP ADO连接返回到MS Access DB的JSON

获取从PHP ADO连接返回到MS Access DB的JSON,php,json,ms-access,Php,Json,Ms Access,我正在尝试获取从MS Access DB查询返回的JSON字符串。我得到的记录集($rs)很好,但尝试循环返回JSON,而不知道记录集中的所有字段。下面返回我想要的内容,但在[[“aaa”:“bbb”,“ccc”:“ddd”]中不是我要找的[{…}] $num_columns = $rs->Fields->Count (); //echo $num_columns . "<br>"; $arrColumns = array(); for ($i=0; $i &l

我正在尝试获取从MS Access DB查询返回的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像这样返回:
[{“First”:“John”},{“Last”:“Doe”}]
包裹在对象中的数组。我需要返回一个对象或一个数组,这样我就可以在客户端处理:
{“First”:“John”}、{“Last”:“Doe”}


$.getJSON('http://remote.domain.com/json.php?callback=?,函数(res){
警报(“结果:”+res.Last);
});

我想这可能是我
json\u编码($Array)的方式
和不使用类?

如果要以
[{…}]
格式返回,则需要将
$arrRow
值从数组更改为类。为了简化,您可以利用

试着这样做:

while (!$rs->EOF) {
    $arrRow = array();

    $class = new stdClass();
    $class->field1 = $arrColumns[1]->value;
    $class->field2 = $arrColumns[2]->value;

    $arrRow[] = $arrColumns[$i]->value;

    $arrResult[] = $arrRow;
    $rs->MoveNext();
}

echo json_encode($arrResult);

您没有它在
[[“aaa”:“bbb”,“ccc”:“ddd”]
中,因为它不是有效的
json
数组格式。。。有关规格,请参阅

数组应表示为

而对象

你可以拥有的壁橱是

[["aaa","bbb"]["ccc","ddd"]]

非常感谢,这将解决我忽略的JSON对象问题,但我仍在尝试动态生成结果,而不必手动创建每一列。我的代码的第一部分似乎将列名作为对象返回。我无法将其转换为字符串或将其转换为字符串数组?似乎$arrColumns[]=$rs->Fields($i);将对象放入数组中?
while (!$rs->EOF) {
    $arrRow = array();

    $class = new stdClass();
    $class->field1 = $arrColumns[1]->value;
    $class->field2 = $arrColumns[2]->value;

    $arrRow[] = $arrColumns[$i]->value;

    $arrResult[] = $arrRow;
    $rs->MoveNext();
}

echo json_encode($arrResult);
[["aaa","bbb"]["ccc","ddd"]]