あなたのコードは完全に罰金ですJSONを返します - あなただけのJavaScriptで配列やオブジェクト間で異なるが誤解。
[{"ID":"4","NAME":"asdasd"},
{"ID":"3","NAME":"LOKS"},
{"ID":"1","NAME":"LOL"}]
これは3つの要素を持つ配列を含むJSONです。各要素は、属性がID
およびNAME
のオブジェクトです。
配列がdata
に格納されているとします。
for(var i = 0; i < data.length; i++) {
var row = data[i];
// Here you can use row.ID and row.NAME
}
私はあなたがこのように見えるためにあなたのJSONを期待推測:あなたは、簡単なfor
ループとその配列内のオブジェクトを反復処理することができます
{
0: {"ID":"4","NAME":"asdasd"},
1: {"ID":"3","NAME":"LOKS"},
2: {"ID":"1","NAME":"LOL"}
}
これは実際になり悪い JavaScript内のオブジェクトは(実際にはほとんどのブラウザに含まれていますが、保証されていません)のです。したがって、そのような要素の行を反復するとき(for(var key in data)
を使用して)、キーがゼロであるためにID = 4の行を取得する必要はありません。
あなたが本当にオブジェクトの代わりに、何らかの理由で(そうしない!)の配列をしたい場合は、あなたは常にオブジェクトへの配列をキャストすることができます:サイドノートとして
echo json_encode((object)$json_values);
を、通常、セキュリティ上の理由からJSONのトップレベル要素としてオブジェクトを用意することをお勧めします(配列コンストラクタを再定義して、スクリプトタグを持つ最上位の配列を含むものを作成し、通常は同じ原点で保護されたデータにアクセスできますXHRリクエストによってアクセスされた場合のポリシー)、このようにPHPコードを変更します。
echo json_encode(array('rows' => $json_values));
あなたの問題は何ですか?コードは完璧に見えます。 – ThiefMaster
問題:配列は返されますが、jsonでは返されません。 変数 "$ i"をキーとして取り出すと、jsonとして返されますが、 "$ i"をキーとして使用すると配列は返されますが、jsonでは返されません – aainaarz
実際の出力と望ましい出力? – Niko