c# - 从代码中包含\", but it keeps it as\\\"的文件中读取文本

标签 c# string escaping

我有一个文本文件,其中包含如下所示的数据:

{\"_clientId\":\"123\",\"_timestamp\":22548} {\"_clientId\":\"222\",\"_timestamp\":22590}

(他们已经有了转义字符)

当我使用读取文件时 string[] lines = System.IO.File.ReadAllLines(@"datafile.txt"); 例如,它将 lines 中的字符串存储为:

"{\\\"_clientId\\\":\\\"123\\\",\\\"_timestamp\\\":22548}" "{\\\"_clientId\":\\\"222\\\",\\\"_timestamp\\\":22590}"

我的问题是:有没有办法将它们存储在字符串变量中而无需额外的转义字符(按它们在文件中出现的方式存储它们)?

最佳答案

这些行应该完全按照它们在文件中输入的方式存储在您的 string[] 中。

如果您查看调试器 中的行,调试器 将仅出于可视化目的显示转义符。这可能就是您所看到的。

编辑:

在详细查看您的示例后,问题是您已经转义了数据文件中的引号。数据文件本身不包含有效的 Json。

这应该可以解决问题:

string fixedLine = line.Replace("\\\"", "\"");

然后反序列化fixedLine

关于c# - 从代码中包含\", but it keeps it as\\\"的文件中读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617770/

相关文章:

c# - .NET 核心 Entity Framework InvalidOperationException

c++ - 如何将字符串 vector 中的每个单词更改为大写

java - 为什么 java String.length 给出与相同字符串的 python len() 不同的结果

regex - 正则表达式或 LIKE 模式的转义函数

带转义单引号的 SQL Like 子句

php - filter_var vs htmlentities vs htmlspecialchars

c# - Exchange Activesync 中的自动隔离

c# - 在 .NET Core 项目中引用外部 DLL

c# - 使用简单注入(inject)器注入(inject)控制台应用程序

c 带字符串的指针