c#反序列化JSON html字符串

C# Deserialize JSON html string

本文关键字:字符串 html JSON 反序列化      更新时间:2023-09-26

我试图在c#中反序列化JSON对象,我的问题是其中一个字段可以包含html文本(我计划事后对其进行消毒)。

我正在使用JavaScriptSerializer对象来反序列化,但是我得到一个"传入无效对象"错误(来自JavaScriptSerializer)。如果我为相同的字段传递纯文本,它会正常工作,对象中的其他字段(包括日期和数组)也会正确反序列化,所以看起来html是什么绊倒了它。

我使用JSON。stringify序列化Javascript对象,我通过jQuery将其传递给我的页面。

是否有我应该做的事情,以传递一个包含html的字符串?我试过用引号把它括起来,但是没有用。

作为接受字符串与抛出错误的例子:"Test"是好的,而

"<div style="text-align: center;">Test</div>"不是。奇怪的是,<span>标签似乎也很好。

能否在序列化前用javascript escape()函数对html进行编码?

您可能必须在javascript中编码uriccomponent,然后是HttpServerUtility。.NET中的UrlDecode

由于安全原因,您不能传入未编码的HTML字符。你可以在MVC中重写这个。如果您对源代码感到安全,请在功能级应用Net。

就像这样做一些替换jsonString.Replace(@"=""'""",@"='""'""").Replace(@"'""""",@"'""'""").Replace(@"=""""", @"='""'""")