我有一个文本文件,其中包含如下所示的数据:
{\"_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/