Html in json - 如何使其有效(使用 javascript)?

Html in json - how to make it valid (with javascript)?

我正在使用 json.net 自动将我的 json 对象反序列化为 .net 对象。只要 json 有效,它就很有用。

但我在 json 中遇到 html 问题...特殊字符和引号使 json 无效。

如何可靠地编码或转义 html 使其有效 json?我需要一种只用 javascript 的方法,因为它是客户端发送到服务器端。

编辑 仅举一个我的用例示例,我的应用程序中有一个 WYSIWYG,我需要将输入作为 json 对象的一部分发布到我的服务器。

Just to give an example of my use case, I have a WYSIWYG in my app and I need the input from that included as part of a json object to be posted to my server.

假设您在字符串变量中输入了用户:

var userInput = 'Any crap with HTML you can imagine';

您可以简单地 JSON 对其进行编码,以便将其作为有效的 JSON 字符串进行传输:

var json = JSON.stringify({ value = userInput });

现在生成的对象将如下所示:

{
    "value": "Any crap with HTML you can imagine"
}

并且在您的服务器上只需将其映射到带有普通 Value 字符串 属性 的 POCO。 JSON.stringify 方法将确保将任何输入正确序列化为有效的 JSON 字符串。

话虽如此,我不太明白您需要将用户输入包装在 JSOn 字符串中,然后使用 JSON.NET 在服务器上将其反序列化。我宁愿按原样发送原始输入。这样,您将在服务器上获得完全相同的值,而无需 JSON 序列化的开销。