我有一个包含如下所示数据的文本文件:
{\"_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}"
我的问题是:有没有办法将它们存储在字符串变量中,而没有额外的转义字符(将它们存储在文件中)?
答案 0 :(得分:5)
这些行应该与string[]
中的行完全一样存储在文件中。
如果查看调试器中的行,调试器将仅显示转义以用于可视化目的。这可能就是你所看到的。
编辑:
详细查看您的示例后,问题是您已经转义了数据文件中的引号。数据文件本身不包含有效的Json。
这应解决问题:
string fixedLine = line.Replace("\\\"", "\"");
然后反序列化fixedLine
。
答案 1 :(得分:0)
您需要使用某些反序列化器反序列化该文件。有许多可用,您可以使用JSON.NET
或Servicestack.Text.
Servicestack的序列化器和解串器是在地球上最快的。使用其中一个,您可以获取没有转义字符的JSON
数据,并可以存储它或传递给方法。