/ / Comment analyser une chaîne HTML à l'aide de JSON.parse () en JavaScript? - javascript, json, asp.net-mvc, analyse

Comment analyser une chaîne HTML à l'aide de JSON.parse () en JavaScript? - javascript, json, asp.net-mvc, analyse

J'ai une application ASP.NET MVC renvoyant une chaîne JSON à la vue.

// Parsing the model returned on the VIEW
var jsonString = "@Html.Raw(Model.ToJson())";
var jsonObj = JSON.parse(jsonString);

Le problème est que je ne suis pas capable d’analyser car le jsonString contient des caractères tels que "" et "".

//Sample string
{ "description" : "<p>Sample<span style="color: #ff6600;"> Text</span></strong></p>" }

Réponses:

5 pour la réponse № 1

JSON est valide JavaScript, donc vous pouvez simplement faire ceci:

var jsonObj = @Html.Raw(Model.ToJson());

Pour info, si l’analyse JSON échoue, c’est parce que le bien " sont échappés avec pour que le code JSON soit valide, les barres obliques inverses elles-mêmes doivent être insérées dans la chaîne pour pouvoir être vues par l'analyseur JSON. Comparer:

JSON.parse(""quote: """);  // error: unexpected string
JSON.parse(""quote: \"""); // "quote: ""

Cet exemple devrait également préciser ce qui se passe dans les barres obliques inverses:

var unescaped = """, escaped = "\"";

console.log(unescaped, unescaped.length); // """,  1
console.log(escaped, escaped.length);     // """, 2

0 pour la réponse № 2

Si vous souhaitez créer une chaîne Javascript valide, vous devez échapper les barres obliques inverses et les apostrophes:

var jsonString = "@Html.Raw(Model.ToJson().Replace("\", "\\").Replace(""", "\""))";