2

配列から作成しているより大きなJSONオブジェクトに値として含めたいJSON文字列があります。PHPが文字列をエスケープせずに、また以前にエンコードされた文字列をデコードせずに、より大きなJSONオブジェクトを作成するにはどうすればよいですか?

たとえば、JSON文字列が次の場合:

$encoded_already = '{"encoded_key": "encoded_value"}';

そして、それを配列とjson_encode()に含めたいと思います。

$new_array = array(
    "some_other_key" => $some_value,
    "premade_data" => $encoded_already
);
$output = json_encode($new_array);

ただし$encoded_already、エスケープされた文字列だけでなく、実際のJSONとして文字列を含める必要があります。

4

1 に答える 1

2

アイデアは次のとおりです。トークンを属性値として配置し、それを使用str_replaceします。

$tokenJSONのどこにも表示されない場合にのみ機能します。

$token = '%%%';
$output = str_replace( '"' . $token . '"', $encoded_already, json_encode( array(
    "some_other_key" => $some_value,
    "premade_data" => $token
) );
于 2012-06-22T02:58:37.303 に答える