我想清理从数据库中检索的字符串。
我遇到了这个问题,其中一个属性值(来自数据库的名称)有一个嵌入的TAB字符,Chrome在尝试加载JSON对象时给了我一个无效的TOKEN错误。
所以现在,我去了http://www.json.org/,并且它有一个规范。但我无法理解如何使用此规范编写清洁剂:
字符串
字符
炭
给定一个字符串,我如何“清理”它以便符合此规范?
具体来说,我很困惑:规范是否允许TAB(0x0900)字符?如果是这样,为什么Chrome会出现无效的TOKEN错误?
答案 0 :(得分:13)
制表符(实际0x09
,而不是转义)不能出现在JSON中的引号内(尽管它们是引号之外的有效空格)。您需要使用\t
或\u0009
(前者更可取)来逃避它们。
json.org说字符串的未转义字符必须是:
除“或\或”之外的任何UNICODE字符 控制角色
选项卡计为控制角色。
答案 1 :(得分:2)
这可能就是你要找的内容,它展示了如何在C#中使用JavaScriptSerializer类。