0

私のphpファイルでは、以下を使用して、

$obj = ($_POST['data']);
var_dump(json_decode($obj,true));

そして、私はこの結果を見ます。これは正しい形式ですか?アレイにアクセスするにはどうすればよいですか。

たとえば、row1idと同じ新しい変数$newIDを設定します

array(4) {
  ["row0"]=>
  string(92) "{"id":"157","name":"123","basic":"123123123","submitter":"Keith","status":"review"}"
  ["row1"]=>
  string(169) "{"id":"158","name":"TEST RESOURCE","basic":"Please state the type of work.","submitter":"Keith","status":"review"}"
  ["row2"]=>
  string(107) "{"id":"159","name":"TEST OTHER","basic":"testing for other","submitter":"Keith","status":"review"}"
  ["row3"]=>
  string(160) "{"id":"160","name":"Name","basic":"type of work","submitter":"Keith","status":"review"}"
}

これがfirebugのPOSTの内容です

data    {"row0":"{\"id\":\"157\",\"name\":\"123\",\"basic\":\"123123123\",\"submitter\":\"Keith\",\"status\":\"review\"}","row1":"{\"id\":\"158\",\"name\":\"TEST RESOURCE\",\"basic\":\"Please state the type of work.\",\"submitter\":\"Keith\",\"status\":\"review\"}","row2":"{\"id\":\"159\",\"name\":\"TEST OTHER\",\"basic\":\"testing for other\",\"submitter\":\"Keith\",\"status\":\"review\"}","row3":"{\"id\":\"160\",\"name\":\"Name\",\"basic\":\"type of work\",\"submitter\":\"Keith\",\"status\":\"review\"}"} 
4

1 に答える 1

1

配列の各「行」は別のJSON文字列です。データは次のように二重にエンコードされているようです。

$array = json_encode(
    array(
        'row0' => json_encode(array('id' => '157', ...)),
        ...
    )
)

JSONオブジェクト内にJSONオブジェクトが必要な場合を除いて、これは誤ってエンコードされたデータです。json_decodeそれを操作するには、個々のアイテムをもう一度実行する必要があります。ただし、より良い方法:エンコード手順を修正します。

于 2013-02-06T10:33:58.013 に答える