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

Jef*_*ang 7 c# json

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

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

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

  • ""
  • " 字符 "

字符

  • 烧焦
  • char chars

烧焦

  • any-Unicode-character- except - " - 或 - 或 - control-character
  • \"
  • \\
  • /
  • \ b
  • \F
  • \n
  • \ r
  • \ t
  • \ u四个十六进制数字

给定一个字符串,我如何"清理"它以便符合此规范?

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

Joe*_*ams 13

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

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

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

选项卡计为控制字符.


Rod*_*ley 1

这可能是您正在寻找的内容,它展示了如何在 C# 中使用 JavaScriptSerializer 类。

如何在 C# 中创建 JSON 字符串