0

次の JSON が必要です。

{"success": false,"errors": {"err1": "some error","err2": "another error"}}

私が使用しているコード:

$rs = array("success"=>true);
$rs['errors'][] = array("err1"=>"some error");
$rs['errors'][] = array("err2"=>"another error");
json_encode($rs);

以下を生成します。

{"success":false,"errors":[{"err1":"some error"},{"err2":"another error"}]}
4

3 に答える 3

4

errors連想配列にする必要があります。

$rs = array('success' => false, 'errors' => array());
$rs['errors']['err1'] = 'some error';
$rs['errors']['err2'] = 'another error';
echo json_encode($rs);
于 2012-08-03T17:41:14.863 に答える
0

errors数値配列内の複数のオブジェクトではなく、単一のオブジェクトを含みます。これはうまくいくはずです:

$a = array(
  "success" => false,
  "errors" => array(
    "err1" => "some error",
    "err2" => "another error"
  )
);
json_encode($a);
于 2012-08-03T17:42:03.600 に答える
0

作成しようとしている JSON 文字列には配列が含まれていません。ネストされたオブジェクトがあります。この JSON 文字列を複製するには、次のようにオブジェクトを作成する必要があります。

$root_obj = new StdClass();
$root_obj->success = false;
$root_obj->errors = new StdClass();
$root_obj->errors->err1 = 'some error';
$root_obj->errors->err2 = 'another error';
于 2012-08-03T17:51:01.953 に答える