代码之家  ›  专栏  ›  技术社区  ›  Jeff Meatball Yang

将字符串清除为有效的JSON值

  •  7
  • Jeff Meatball Yang  · 技术社区  · 16 年前

    我想清理从数据库检索到的字符串。

    我遇到了这样一个问题:属性值(来自数据库的名称)有一个嵌入的TAB字符,Chrome在尝试加载JSON对象时给了我一个无效的令牌错误。

    http://www.json.org/

    一串

    • ""
    • " 字符

    字符

    • 烧焦 字符

    • 除了-“-或-或- 控制字符
    • \"
    • \\
    • /
    • \f级
    • \不
    • \右
    • \u四个十六进制数字

    给定一个字符串,如何“清理”它以符合此规范?

    具体来说,我很困惑:规范是否允许TAB(0x0900)字符?如果是这样,为什么Chrome会给出一个无效的令牌错误?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    这可能是您想要的,它展示了如何在C#中使用JavaScriptSerializer类。

    How to create JSON String in C#

        2
  •  13
  •   Joey Adams    16 年前

    制表符(实际 0x09 ,而不是转义)不能出现在JSON的引号内(尽管它们是引号外的有效空白)。你得和他们一起逃走 \t \u0009 (前者更好)。

    json.org说字符串的未转义字符必须是:

    控制字符

    制表符算作控制字符。