一尘不染

使用JSON.Net序列化包含撇号的字符串

json

我正在使用JSON.Net作为c#和Razor视图引擎中的大型MVC 3
Web应用程序的序列化器。对于一个视图中的初始页面加载,在脚本标记中使用倾倒了大量JSON
@Html.Raw(JsonConvert.SerializeObject(myObject))

问题在于某些对象的某些值包含撇号(例如O’Brien之类的名称),JSON.Net不会以任何方式转义或编码。

不能对存储在数据库中的值进行预编码,因为这会使其他各种过程变得非常复杂。

有没有一种方法可以强制JSON.Net对其序列化的对象的值进行HTML编码,就像调用JavaScript时内置的JavaScriptSerializer一样JavaScriptSerializer.Serialize(myObject)?或者,是否有一种方法可以解决这个问题?


阅读 208

收藏
2020-07-27

共1个答案

一尘不染

尽管在某些情况下,您可能希望将一些JSON作为JavaScript字符串或HTML属性值添加到页面中,但是最常见的做法是直接将其直接包含到JavaScript源中,因为JSON是后面的有效JavaScript语法所有。

2020-07-27