Hola lamek,
 
No entiendo exactamente tu problema, pero he hecho pruebas de con las arrays y los json_encode / json_decode y no he tenido problemas para procesarlo.  
 Código PHP:
    <?
$str = "esto es una prueba: esto sigue siendo: una prueba";
 
$arr = array(
     "cadena" => json_encode($str)
);
 
print_r($arr);echo "<br /><br />"; //Array Normal
 
$arr=json_encode($arr);
echo $arr;echo "<br /><br />"; //Array codificada
 
$arr=(array) json_decode($arr);
print_r($arr);echo "<br /><br />"; //Array decodificada
 
echo json_decode($arr['cadena']);echo "<br /><br />"; //Valor docodificado
echo $arr['cadena']; //Valor codificado
?>
 
<!--Respuesta-->
 
Array ( [cadena] => "esto es una prueba: esto sigue siendo: una prueba" )
 
{"cadena":"\"esto es una prueba: esto sigue siendo: una prueba\""}
 
Array ( [cadena] => "esto es una prueba: esto sigue siendo: una prueba" )
 
esto es una prueba: esto sigue siendo: una prueba
 
"esto es una prueba: esto sigue siendo: una prueba"