0

从查询中获取 JSON 数组。它不是在数据中打印密钥。

我的期望:

["0":"3675E5010E2738","1":"4114009","2":"2012-11-05","3":"Active","4":"2012-12-11"]

我得到什么...

["3675E5010E2738","4114009","2012-11-05","Active","2012-12-11"]

JSON 由 PHP/JSON 编码生成:

$array = $model->ListData();
echo json_encode($array);

我已经尝试加载两者loadRowList();并且loadAssocList();都没有生成密钥。

4

3 回答 3

2

因为这不是 JSON 表示数组的方式

["0":"3675E5010E2738","1":"4114009","2":"2012-11-05","3":"Active","4":"2012-12-11"]不是有效的 JSON。

{"0":"3675E5010E2738","1":"4114009","2":"2012-11-05","3":"Active","4":"2012-12-11"}是,但那是对象的表示,而不是数组。

如果$model->ListData();返回一个数组,正如您的代码所暗示的那样,那么您得到的表示是正确的。

无论如何,既然json[0]会以同样的方式工作,不管它是一个数组还是一个带有数字键的对象,那有什么关系呢?

于 2012-12-18T21:06:05.670 回答
1

您有从 0 开始按顺序排列的数字键。您不需要存在键来正确解释它。

于 2012-12-18T21:05:33.723 回答
0

请记住,JSON 是 javascript 对象表示法,这意味着它使用 javascript 语法。

var myObject = { 0: '零', 1: '一', 2: '二' }; var myArray = ['零','一','二'];

数组和对象用于不同的目的。对象支持键,数组不支持。

于 2012-12-18T21:25:31.000 回答