0

POST から受け取った JSON オブジェクトを PHP ファイル内で使用できるようにしたいと考えています。JSON は次のようになります。

array(1) {
  ["json"]=>
  string(260) "[{"proddescr":"text1","prodpu":"1","prodcant":"1","prodnume":"text1x"},  {"proddescr":"text2","prodpu":"2","prodcant":"2","prodnume":"text2x"}, {"proddescr":"text3","prodpu":"Price:150.00","prodcant":"quantity:4","prodnume":"text3x"}]"
}

私はphpファイル内で次のようにアクセスします:

<?php 
 header('Content-type: application.json');
 $x = json_decode($_POST['json']);
 foreach($x as $i => $value){
   print_r($x[$i]);
 }
?>

今...デスクトッププログラミングから来ています...私はjson処理についてあまり知りませんが、JSON配列のすべての要素(3つは上に表示されています)とそのすべてのコンテンツにアクセスできる必要があります。foreach を使用して主要な要素にアクセスできるようですが、各「レコード」の内部要素にアクセスできないようです。

しかし、結果は次のようになります。

stdClass Object
(
    [proddescr] => text1
    [prodpu] => 1
    [prodcant] => 1
    [prodnume] => text1x
)
stdClass Object
(
    [proddescr] => text2
    [prodpu] => 2
    [prodcant] => 2
    [prodnume] => text2x
)
and so on

目的は、json 配列の値に基づいて INSERT ステートメントを作成できるようにすることです。

そのため、(foreach ループ内で) これら 3 つの (この場合) 配列項目のそれぞれから "proddescr" 値、"prodpu" 値、"prodcant" 値、および "prodnume" 値を取得できる必要があります。

私は試した

   print_r($x[$i][0]);

また

   print_r($x[$i]["proddesc"]);

配列の内部値にアクセスできるようにするためですが、機能しません(上記の2つのprint_rを追加すると、「500内部サーバーエラー」が発生し続けます.

配列のこれらのサブ値にアクセスするにはどうすればよいですか?

4

3 に答える 3

2

trueの 2 番目のパラメーターとして使用しjson_decodeて、配列に変換します

$x = json_decode($_POST['json'],true);
foreach($x as $i => $value){
    echo $x[$i]['proddescr'];
    echo $x[$i]['prodpu'];
    echo $x[$i]['prodcant'];
    echo $x[$i]['prodnume'];
}

コードパッドのデモ

于 2013-07-11T13:36:05.890 に答える
0

$x[$i]->proddescr などと言うでしょう

于 2013-07-11T13:39:37.417 に答える