1

そのため、MySql テーブル データを多次元 PHP 配列に取得するか、その多次元配列を json 文字列に変換する最良の方法を見つけようとしています。

基本的に、私がやろうとしているのは、JSON文字列を返すphpインクルードを用意して、それを反復できるようにすることです。複数の値を持つ単一のキーが必要なので、正しい方向に向かっていることを 100% 確信しているわけではありません。

たとえば、同じキーに複数の値を割り当てたい:

[{"key1": "package1", "package2", "package3"}, {"key2": "package1", "package2", "package3", "package4"}]

それはうまくいかないと思いますよね?私はインデックスのタイプを持っていないので?

4

2 に答える 2

4

これは有効な JSON ではありません。探している構造は次のようになります。

[
 {"key1": ["package1", "package2", "package3"]},
 {"key2": ["package1", "package2", "package3", "package4"}]
          ^ An array as the value to the key "key1", "key2", etc..
]

PHP 側では、次のようなものが必要になります。

  1. MySQL からフェッチされたすべての行に対して
    • $arr[$key]= <新しい配列>
    • 各パッケージ:
      • パッケージを追加$arr[$key]
  2. エコーアウトjson_encode($arr)
于 2012-11-03T04:19:44.873 に答える
1

JS 配列には、インデックス 0 から始まる暗黙の配列キーイングがあります。取得したものは、完全に有効な JS 配列であり、次のように記述した場合と同等です。

var x = []; // create new empty array
x[0] = {"key1": .... }; // first object
x[1] = {"key2": ....} // second object

{}サブオブジェクトの内容は無効であることに注意してください。

JSON 文字列を手動で作成してはいけません。信頼性が低すぎて、台無しになりやすいです。ネイティブのデータ構造 (php 配列/オブジェクト) を使用する方が簡単ですjson_encode()。プロセスの反対側も同様です。文字列を手動でデコードしないでください。json_decode()ネイティブ データ構造 ( 、 など)に変換してから、JSON.parse()ネイティブ構造を直接処理します。

基本的に、JSON は送信形式であり、操作形式ではありません。

于 2012-11-03T04:19:35.077 に答える