12

phpは初めてです。名前と値のペアでJSONデータをフロントエンドに送信しようとしています。ここで取得した例を試してみました 。以下は、JSON名の値の形式でデータを送信するコードフラグメントです。

while($stmt->fetch()){
    $list = array('id' => $fid, 'name' => $fname);
}
$stmt->free_result();
$stmt->close();
echo json_encode($list);

これはフロントエンドで入手しました

Object {id: 12, name: "Manisha"}

問題は、オブジェクトの配列を期待していたことです。上記の値は、SQLクエリから取得された最後の値です。オブジェクトの配列を取得できるように、このコードにどのような変更を加える必要がありますか。何かのようなもの

[{"id":"1","name":"Kumari"}, {"id":"2","name":"KM"}, {"id":"3","name":"Manisha"}]

ご意見をお聞かせください。

4

6 に答える 6

23

$ listは配列である必要があり、次のコードのようにアイテムを配列にプッシュできます。

$list = array();
while($stmt->fetch()){
    $list[] = array('id' => $fid, 'name' => $fname);
}
$stmt->free_result();
$stmt->close();
echo json_encode($list);

ループを繰り返す代わりに、メソッドfetch_all()を使用してすべての行を一度に取得することもできます。この例では、idとnameだけでなく、選択したすべてのフィールドを取得します。

$list = $stmt->fetch_all();
$stmt->free_result();
$stmt->close();
echo json_encode($list);
于 2013-03-25T15:40:42.967 に答える
3

を使用してスタックに追加するように、配列の最後で各オブジェクトをプッシュしてみてくださいarray_push(と同等ですが$array[] = $data、読みやすくなります)。

$list=array(); //instantiate the array 
while($stmt->fetch()){
    $data = new stdClass(); // create a new object
    $data->id=$fid;
    $data->name=$fname;
    array_push($list,$data); // push object to stack array
}
$stmt->free_result();
$stmt->close();
echo json_encode($list);
于 2013-03-25T15:55:10.000 に答える
2

リスト配列には1行しか格納されていません。これを試して:

while ($stmt->fetch()) {
    $list[] = array('id' => $fid, 'name' => $fname);
}

お役に立てれば!

于 2013-03-25T15:42:09.180 に答える
2

オブジェクトの配列を作成してみてください

$list = array();
while($stmt->fetch()) {
    // create an object
    $datum=new stdClass();
    $datum->id=$fid;
    $datum->name=$fname;

    $list[] = $datum;
}
$stmt->free_result();
$stmt->close();
echo json_encode($list);
于 2013-03-25T15:45:24.340 に答える
0

これがあなたのために働くかどうか見てください:

$n = 0;
while($stmt->fetch()){
    $list[$n] = array('id' => $fid, 'name' => $fname);
    $n++;
}
$stmt->free_result();
$stmt->close();
echo json_encode($list);

$list配列で複数回上書きしていました。

于 2013-03-25T15:43:14.573 に答える
0

内部に特定のオブジェクトがないこのファイル構造があるとしましょう:

  {
    "Subjects" : []
  }



//Get your Json file and decode it 
$json = file_get_contents('CdStore/Pagetest.json');
$json_data = json_decode($json,true);

   //Specifiy your Objects like this
$NewArray= array( 'Mathematics' => array(),'Physics' => array());
  //Push the new Objects  
array_push($json_data['Pagess'],$NewArray); 
   //Then encode to json
$array = json_encode($json_data); 
  //If you want to get the preview before saving
print_r($array);  

 //Save your file
file_put_contents('CdStore/Pagetest.json', json_encode($json_data));

結果としてあなたは持っています:

 {"Subjects":
     [
       {
        "Mathematics":[],

        "Physics":[]

         }
     ]

  }
于 2016-02-23T17:50:15.377 に答える