No puedo hacer que json_decode () funcione cuando el valor de la cadena contiene comillas simples (') como el siguiente ejemplo:

$result = "{\"message\":\"test \' \",\"report\":[{\"1\":[{\"port\":\"gsm-1.2\",\"phonenumber\":\"XXXXXXXXXXX\",\"time\":\"2016-08-31 00:22:57\",\"result\":\"success\"}]}]}";
$resp = json_decode($result, true);
echo $resp;
1
Bootsector 30 ago. 2016 a las 19:57

2 respuestas

La mejor respuesta

En su código, la comilla simple (') se omite con barra oblicua (), por lo que está rompiendo el formato JSON.

Intente quitar la barra e intente. Deberia de funcionar.

Debe verificar el código donde está generando este JSON.

0
Vivek Srivastava 30 ago. 2016 a las 17:04

Su $ result json no está en el formato adecuado, así que creo que debe usar stripslashes () para formatearlo y luego usar json_decode (). funcionaría :).

<?php
$result = "{\"message\":\"test \'\",\"report\":[{\"1\":[{\"port\":\"gsm-1.2\",\"phonenumber\":\"XXXXXXXXXXX\",\"time\":\"2016-08-  31 00:22:57\",\"result\":\"success\"}]}]}";
$result=stripslashes($result);
$resp = json_decode($result, true);
var_dump($resp);
?>

verifique phpfiddle => http://phpfiddle.org/main/code/4e7n-vjxa

0
Abhijit Jagtap 30 ago. 2016 a las 17:34