0

Codeigniter レスト サーバーを使用して API を作成しています。私のクライアントの 1 つは、次の JSON 配列を API に送信しています

    {
     "code": "TEST",
     "store": "DBNG0024",
     "total": "50.00",
     "items": [{ "code":"121", "descr":"Pizza 1", "value":"50", "qty":"1",    "dept":"1"}]
    }

残りのサーバーのドキュメントには、次のようなデータにアクセスできると書かれています。

   function client_post()
   {
      $code = $this->post('code');
      $store_code = $this->post('store');
      $total = $this->post('total');

      $data = array('code' => $this->post('code'), 'store' => $this->post('store'), 'status' => 'invalid', 'value' => '0', 'message' => 'code is invalid');

      $this->response($data);
   } 

これは完全に機能します。今私が抱えている問題は、多次元データ "items": [{ "code":"121", "descr":"Pizza 1", "value":"50", "qty": にアクセスできないことです: "1", "部門":"1"}]

私は次のことを試しました

    $items = json_decode($this->post(‘items’)); - Prints nothing
    $items = $this->post(‘items’); - prints the word Array

このように投稿データを印刷すると print_r($_POST,true); 以下は印刷されたものです

    Array ( [code] => 1234 [store] => 1234 [total] => 1234 [items] => Array )

$items配列データにアクセスする方法を見つけるのを手伝ってくれる人はいますか

前もって感謝します

4

3 に答える 3

0

印刷時に配列としてアイテムを取得していると言うように、そのキーと値のペアにアクセスすることでループできます

foreach($_POST['items'] as $key=>$value)
{
  echo 'Key =>'.$key.'|---| Value =>'.$value;
}

これが役に立てば幸いです。どこかで立ち往生している場合はお知らせください。

編集済み:完全なPOSTEDデータをjson_decodeするためにこれを試してみてください..以下のコードを試してください

// $json will contain your posted data
$json = '{"code": "TEST","store": "DBNG0024","total": "50.00","items": [{ "code":"121", "descr":"Pizza 1", "value":"50", "qty":"1","dept":"1"}]}';
        $items = json_decode($json)->items;

        "qty"=>"1", "dept"=>"1"];
        foreach($items[0] as $key=>$value)
        {
            echo 'Key =>'.$key.':: Value =>'.$value;
            echo '<br/>';
        }
于 2016-04-08T14:23:05.887 に答える
0

$items = $this->post(‘items’);「アイテム」にアクセスする正しい方法だと思います。親切にこのリンクを確認してくださいSend a raw json value to rest controller。間違った方法で配列を印刷している可能性があります。このリンクも確認してください行の値の代わりに「配列」という単語が印刷されます

于 2016-04-08T21:45:12.633 に答える