如何将字符串转换为JSON友好字符串?

布兰克曼

我有一个要使用JSON解析器转换的字符串(文本),以便它对JavaScript友好。

在我的查看页面中,我有一些如下所示的javascript:

var site = {
      strings: {
        addToCart: @someValue,

因此@someValue应该是JavaScript安全的,例如双引号,需要时转义的字符等。

该值@someValue是一个字符串,但是必须对JavaScript友好,因此我想使用JSON进行解析。

新的System.Text.Json是否有东西?

我尝试了这个:

return System.Text.Json.JsonDocument.Parse(input).ToString();

但这不起作用,因为我的文本只是一个字符串,而不是JSON字符串。

还有其他解析方式吗?

阿比恩47

转义字符串以使其成为JSON安全的规则如下:

  • 退格键替换为\ b
  • 换页符替换为\ f
  • 换行符替换为\ n
  • 回车换成\ r
  • 制表符替换为\ t
  • 双引号替换为\“
  • 反斜杠替换为\\

并且,尽管并非绝对必要,但可以将任何非Web安全字符(即,任何非ASCII字符)转换为等效的转义Unicode,以避免潜在的编码问题。

由此,创建自己的转换方法非常简单:

public static string MakeJsonSafe(String s)
{
    var jsonEscaped = s.Replace("\\", "\\\\")
                       .Replace("\"", "\\\"")
                       .Replace("\b", "\\b")
                       .Replace("\f", "\\f")
                       .Replace("\n", "\\n")
                       .Replace("\r", "\\r")
                       .Replace("\t", "\\t");
    var nonAsciiEscaped = jsonEscaped.Select((c) => c >= 127 ? "\\u" + ((int)c).ToString("X").PadLeft(4, '0') : c.ToString());
    return string.Join("", nonAsciiEscaped);
}

点网提琴

(就像我说的那样,nonAsciiEscaped可以省略阶段,因为它不是绝对必要的。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何将interface {}转换为字符串?

来自分类Dev

如何将字符串转换为整数

来自分类Dev

从空格分隔的句子创建LIKE友好字符串

来自分类Dev

如何将字符串值转换为斜体

来自分类Dev

如何将JSON转换为数组或字符串?

来自分类Dev

如何将字符串值转换为枚举

来自分类Dev

如何将JSON数组转换为字符串..?

来自分类Dev

如何将字符串转换为BSON?

来自分类Dev

如何将CoreLocation坐标转换为字符串?

来自分类Dev

如何将JSON字符串转换为BSONDocument

来自分类Dev

如何将字符串转换为可读流?

来自分类Dev

如何将字符串转换为枚举?

来自分类Dev

如何将HtmlAttribute转换为字符串?

来自分类Dev

JS:如何将字符串转换为JS对象(**不**转换为JSON)?

来自分类Dev

如何将MultiIndex转换为字符串类型

来自分类Dev

如何将JSON字符串转换为数字?

来自分类Dev

如何将SinkRecord转换为JSON字符串?

来自分类Dev

如何将整数(月)转换为人类友好的字符串?

来自分类Dev

如何将字符串转换为Unicode字符

来自分类Dev

如何将JSON字符串转换为NSArray?

来自分类Dev

如何将字符串转换为HTML友好字符串

来自分类Dev

如何将字符从数组转换为字符串

来自分类Dev

如何将JSON字符串转换为JSON

来自分类Dev

如何将JSON字符串转换为NSArray

来自分类Dev

如何将地址栏中的非 url 友好字符转换为 URL 友好字符?

来自分类Dev

如何将字符数组转换为字符串

来自分类Dev

如何将 JSON 转换为 php 字符串

来自分类Dev

如何将字符串转换为字符

来自分类Dev

如何将 JSON 转换为字符串?