Ho una pagina in cui sto cercando di analizzare seguente stringa JSON utilizzando JSON.parseJSON.parse sfuggire caratteri di nuova riga
'[{"Name":"Eggs","Complete":false,"Notes":"Notes here\n"},{"Name":"Sugar","Complete":false,"Notes":null}]'
Ma seguente codice dà l'errore "Uncaught SyntaxError: Unexpected token"
var groceriesJson = JSON.parse(jsonString);
Poi sono venuto a so che è a causa di \n
in stringa json. Così ho provato this solution. Ma senza fortuna. Ancora lo stesso errore "Uncaught SyntaxError: Unexpected token"
function escapeSpecialChars(jsonString) {
return jsonString.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
}
var groceriesJson = JSON.parse(escapeSpecialChars(jsonString));
Qualche idea? Grazie
--- UPDATE ----
io non sono la creazione di questa stringa manualmente, ho c codici # che crea stringa JSON da C# oggetti
var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
var groceries = jss.Serialize(Model);
poi in javascript codici I hanno
var jsonString = '@Html.Raw(groceries)'
var groceriesJson = JSON.parse(escapeSpecialChars(jsonString));
Perché stai cercando di incorporare JSON come stringa letterale nel tuo JavaScript? Basta usarlo come un array letterale e saltare la fase di analisi manuale. – Quentin
Funziona. Lo contrassegnerò come risposta se puoi postare una risposta. Grazie – sanjeev