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: '0', 1: '1', 2: '2' }; var myArray = [ '0', '1', '2' ];

配列とオブジェクトは異なる目的で使用されます。オブジェクトはキーをサポートしますが、配列はサポートしません。

于 2012-12-18T21:25:31.000 に答える