Sérialisation de chaînes contenant des apostrophes avec JSON.Net
Je suis en utilisant JSON.Net comme mon sérialiseur pour un grand MVC 3 application web en c# et le Rasoir moteur d'affichage. Pour le chargement initial de la page dans une vue, il y a une grande quantité de JSON sous-évaluées à l'intérieur d'une balise de script à l'aide de @Html.Raw(JsonConvert.SerializeObject(myObject))
.
Le problème est que certaines valeurs de certains objets contiennent des apostrophes (pensez à des noms comme O'Brien), qui JSON.Net n'est pas s'en échapper ou de l'encodage en quelque sorte.
Ce n'est pas une option de pré-encoder les valeurs stockées dans la base de données parce que cela complique considérablement de divers autres processus.
Est-il un moyen de forcer l'JSON.Net HTML coder les valeurs des objets qu'il sérialise, de la même façon que le haut-JavaScriptSerializer n'lorsque vous appelez JavaScriptSerializer.Serialize(myObject)
? Ou, est-il un moyen de gérer cela à la vue?
source d'informationauteur dodexahedron
Vous devez vous connecter pour publier un commentaire.
Si il ya des cas où vous voudrez peut chuter certains JSON dans votre page JavaScript chaîne, ou un attribut HTML de valeur, le plus souvent ce que vous pouvez faire est de simplement l'inclure directement dans la source JavaScript, parce que JSON est valide la syntaxe JavaScript après tout.
Vous pouvez créer des JsonConverter comme ceci:
À utiliser seulement pour le Nom de bien le spécifier par attribut:
À appliquer Convertisseur à toutes les chaînes d'utilisation:
Utilisation Système.Web.HttpUtility.HtmlEncode