1

次のようなデータを含むテキスト ファイルがあります。

{\"_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}"

私の質問は次のとおりです。エスケープ文字を追加せずにそれらを文字列変数に格納する方法はありますか (ファイルに表示されたとおりに格納します)。

4

2 に答える 2

5

string[]行は、ファイルに入力されたとおりに正確に保存する必要があります。

デバッガーで行を見ると、デバッガーは視覚化のみを目的としてエスケープを表示します。それはおそらくあなたが見ているものです。

編集:

例を詳細に調べた後、問題は、データ ファイル内の引用符を既にエスケープしていることです。データ ファイル自体に有効な Json が含まれていません。

これで問題が解決するはずです:

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

次に、デシリアライズしfixedLineます。

于 2013-01-31T03:03:51.680 に答える
0

デシリアライザーを使用してファイルをデシリアライズする必要があります。利用可能なものはたくさんあります。使用できるJSON.NETか、Servicestack.Text.Servicestack のシリアライザーとデシリアライザーは地球上で最速です。これらのいずれかを使用すると、JSONエスケープ文字なしでデータを取得し、それを保存したり、メソッドに渡したりできます。

于 2013-01-31T03:05:55.190 に答える