2012-06-22 4 views
2

배열에서 생성하는 더 큰 JSON 객체의 값으로 포함하려는 JSON 문자열이 있습니다. PHP를 사용하지 않고 문자열을 이스케이프 처리하지 않고 이전에 인코딩 된 문자열을 디코딩하지 않고도 더 큰 JSON 객체를 만들려면 어떻게해야합니까?JSON 데이터를 다른 JSON 객체로 인코딩

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

그리고 나는 나의 배열로 json_encode (에 포함하려는)는 :

예를 들어, 내 JSON 문자열 인 경우

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

하지만 난 $encoded_already을 갖고 싶어 string은 이스케이프 된 문자열이 아니라 실제 JSON으로 포함됩니다.

답변

2

토큰을 속성 값으로 지정한 다음 str_replace을 사용하는 것이 좋습니다.

$token이 JSON의 어느 곳에 나타나지 않는 경우에만 작동합니다.

$token = '%%%'; 
$output = str_replace('"' . $token . '"', $encoded_already, json_encode(array(
    "some_other_key" => $some_value, 
    "premade_data" => $token 
)); 
+1

+1 +1이에요. – iambriansreed

+0

비슷하게 생각하는 위대한 마음을위한 upvote : – buley

+2

'$ new_array ='가 추가되었습니다. :)'%%% ''를'uniqid()'로 바꾸고 싶을 수도 있습니다. – iambriansreed