我有一个 SQL 表说明:
身份证 | 描述 |
---|---|
1 | 你好 世界 |
我使用 Linq 检索表:
var result = _dbContext.Descriptions.Single(x => x.Id == 1);
查看
Text Visualizer中
result.Description
的值,我们发现它具有预期值“Hello
世界”。
现在我使用 Newtonsoft 序列化对象,而不指定序列化设置:
var serialized = JsonConvert.SerializeObject(result);
查看
Text Visualizer中
serialized
的值,我们看到现在有以下 JSON 字符串:
{ "Id": 1, Description: "Hello \\n world" }
我们可以看到它已经转义了换行符( ) 通过添加额外的反斜杠。我需要序列化的 JSON 来不添加这个额外的反斜杠转义字符,如下所示:
{ "Id": 1, Description: "Hello \n world" }
var result = new
{
Id = 1,
Description = "Hello \n world"
};
var serialized = JsonConvert.SerializeObject(result);
var result = new
{
Id = 1,
Description = @"Hello \n world"
};
var serialized = JsonConvert.SerializeObject(result);
StringEscapeHandling
。但似乎所有可能的值都包括控制字符的转义(例如换行符)。如何防止转义换行符?我宁愿不诉诸子字符串替换策略。
这很可能是由于您在文本可视化工具调试器中查看字符串所致,请尝试将此值输出到文本文件。实际上可能没有多余的反斜杠