Quello che sto cercando di fare è semplice. Analizza questo array tenendo oggetti json in un array Javascript.Perché JavaScript non può analizzare questo array JSON da una stringa letterale?
var merchantsJson = JSON.parse('[{"id":61693,"name":"Más"},{"id":61690,"name":"\u0027\u0022\u003C/div\u003E"}]');
Ma il carattere unicode \ u003C sembra rompere il parser. Nella console di Chrome vedo "Uncaught SyntaxError: Token imprevisto <"
Un po 'più di informazioni. Quanto sopra è a cosa viene valutato il codice. In realtà il codice contiene un'espressione jsp.
var merchantsJson = JSON.parse('${jsonArr}');
Se rimuovo le virgolette singole, non c'è problema, ma eclissi mi danno un messaggio di errore "manca il punto e virgola". È possibile analizzare l'array con le virgolette come sto cercando di fare?
Si ottengono molte risposte simili al commento di Juhana, ma si noti che JSON non è in realtà un sottoinsieme di JavaScript. Esistono casi limite in cui JSON valido non verrà analizzato correttamente da un interprete javascript che si verifica quando si lavora con Unicode: http://stackoverflow.com/questions/23752156/are-all-json-objects-also- valid-javascript-objects - fai attenzione con questo consiglio –
@AaronDufour Sono abbastanza sicuro che l'ispettore JSON di JSP sia in grado di gestire tali casi, considerando che è progettato per avere il suo output inserito "così com'è" per il codice JS. – JJJ
@Juhana Non ho familiarità con l'identificatore JSON di JSP, quindi ho pensato che un avvertimento generale fosse giustificato. Se ci si può fidare di '\ u' codificare i caratteri fastidiosi, allora non ci sarà alcun problema. –