对JSON有点新意,所以请原谅问题,但根据here和here找到的特殊字符列表,单引号(')字符应该被转义。 specification也将solidus(/)视为可逃避的角色。为了说明我正在使用文档示例(稍加修改)。
输入:
Product product = new Product();
product.Name = "O'Grady's Apples";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large", "X/Large" };
output = JsonConvert.SerializeObject(product, Formatting.Indented);
输出:
{
"Name": "O'Grady's Apples",
"Expiry": "\/Date(1230422400000+0000)\/",
"Price": 3.99,
"Sizes": ["Small","Medium","Large", "X/Large"]
}
我期望看到的是
{
"Name": "O\'Grady\'s Apples",...
"Sizes": ["Small","Medium","Large", "X\/Large"]
}
这是打算吗?还是我误解了规格?
答案 0 :(得分:3)
虽然可以在字符串中转义所有内容,但只需要转义一组非常有限的内容:
字符串的表示类似于C中使用的约定 编程语言家族。字符串的开头和结尾 引号。所有Unicode字符都可以放在 除了必须转义的字符之外的引号: 引号,反向实线和控制字符(
U+0000
通过U+001F
)。
因此,只有"
,\
和不可打印的控件字符必须才能转义。