Ho cercato e letto la maggior parte degli argomenti correlati, ma non erano quello che stavo cercando.php json_encode e jquery parseJSON problema di quotazione singola
Ho una stringa enocded JSON con funzione di json_encode
PHP:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
sto lavorando con jQuery per mettere i valori in campi appropriati anche, nel caso di test ho fatto il qui sotto:
<script>
var obj = jQuery.parseJSON('<?=$data?>');
console.log(obj);
</script>
Supponiamo che $ data è questa:
$data =
<<<END
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
END;
che Google Chrome c onsole produce in questo caso:
Uncaught SyntaxError: Unexpected identifier
Tuttavia quando faccio un cambiamento in JSON stringa codificata - aggiungendo rovesciare a singolo preventivo:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D\'Onofrio"],"year":1987}
uscita Console è normalmente:
Object {casts: Array[3], year: 1987}
casts: Array[3]
year: 1987
La domanda: è previsto questo errore nella console? Penso che sfuggire o sostituire '
con \'
sarà così sporco!
AGGIORNATO
realtà dati $ valore deriva da una var json_encode($var)
e $ è un array!
$data = json_encode($var);
La stringa json non è costruita a mano. vedere l'aggiornamento per favore. – revo
+1 non c'è bisogno di analizzarlo - l'output di 'json_encode' è già valido JavaScript. – cmbuckley
Sarebbe opportuno specificare 'JSON_HEX_TAG | JSON_HEX_AMP' però. Almeno il primo potrebbe essere necessario per soddisfare le [restrizioni per il contenuto degli elementi 'script'] (http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#restrictions -for-contents-of-script-elements), ed entrambi sono necessari se il documento può essere analizzato come XML. – PleaseStand