如何在JSON中转义字符串?

如何在JSON中转义字符串?

当手动创建JSON数据时,应该如何转义字符串字段?我应该用像ApacheCommonlang那样的东西吗?StringEscapeUtilities.escapeHtmlStringEscapeUtilities.escapeXml,还是我应该用java.net.URLEncoder?

问题是当我用SEU.escapeHtml,它不会转义引号,并且当我将整个字符串包装成一对'将生成格式错误的JSON。



隔江千里
浏览 1170回答 3
3回答

慕容森

理想情况下,用您的语言找到一个JSON库您可以向其提供适当的数据结构,让它担心如何逃避..它会让你更清醒。如果出于任何原因,您在语言中没有一个库,那么您不想使用一个库(我不建议这样做),或者您正在编写一个JSON库,继续读下去。根据RFC逃跑。Json很自由:你唯一的角色必逃逸\, ",以及控制代码(任何小于U+0020的代码)。这种转义结构是JSON特有的。您将需要一个特定于JSON的函数。所有的转义都可以写成\uXXXX哪里XXXX是该字符的UTF-16代码单元。有几条捷径,例如\\,同样有效。(它们带来了更小、更清晰的产出。)有关详细信息,请参阅RFC.JSON的转义是建立在JS上的,因此它使用\uXXXX,在哪里XXXX是一个UTF-16代码单元。对于BMP之外的代码点,这意味着编码代理项对,这可能会有点毛茸茸的。(或者,您可以直接输出字符,因为JSON为IS Unicode文本编码,并允许这些特定字符。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java