【问题标题】:Cleaning strings to be valid JSON values将字符串清理为有效的 JSON 值
【发布时间】:2010-06-28 14:30:43
【问题描述】:

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

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

所以现在,我去了http://www.json.org/,它有一个规范。但我无法理解如何使用此规范编写清洁剂:

字符串

  • ""
  • " 字符 "

字符

  • 字符
  • 字符 字符

字符

  • 任何-Unicode 字符- 除了-”-或--或- 控制字符
  • \"
  • \\
  • /
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u 四位十六进制数

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

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

【问题讨论】:

    标签: c# json


    【解决方案1】:

    制表符(实际的 0x09,不是转义符)不能出现在 JSON 中的引号内(尽管它们是引号外的有效空格)。您需要使用\t\u0009 来逃避它们(前者更可取)。

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

    除 " 或 \ 或之外的任何 UNICODE 字符 控制字符

    制表符算作控制字符。

    【讨论】:

      【解决方案2】:

      这也许是您正在寻找的,它展示了如何在 C# 中使用 JavaScriptSerializer 类。

      How to create JSON String in C#

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 2015-10-22
        • 2015-04-13
        • 1970-01-01
        • 2018-08-29
        • 1970-01-01
        • 2021-11-01
        • 2021-08-15
        • 2022-08-18
        相关资源
        最近更新 更多