1

私はこれが何度もカバーされていることを知っていますが、私はまだすべての解決策に問題があります。

引用符が必要なJSONパーサーに送信する文字列を作成する必要があります。私はこれらのフォームを試しました:

string t1 = "[{\"TS\"}]";
string t2 = "[{" + "\"" + "TS" + "\"" + "}]";
string t3 = @"[{""TS""}]"; 
Debug.Print(t1);
Debug.Print(t1);
Debug.Print(t1);

デバッグステートメントは正しく表示します[{"TS"}]が、デバッガーで確認すると、最も重要なのは、サーバー側に文字列を送信するときに、jsonパーサーにエスケープ文字が含まれていることです: "[{\" TS \ "}]"

実際の文字列のエスケープ文字を削除するにはどうすればよいですか?

4

1 に答える 1

3

デバッグステートメントは正しく [{"TS"}] を表示しますが、デバッガーでそれを見ると、最も重要なことに、文字列をサーバー側の json パーサーに送信すると、エスケープ文字が含まれています: "[{\"TS \"}]"

デバッガーの観点からは、常にエスケープされたバージョンが表示されます (これは、開発者が文字列値が何であるかを正確に知るためです)。これはエラーではありません。別の .Net システムに送信すると、デバッガーの観点からエスケープされたバージョンが再び表示されます。値 (Response.Write() または Console.WriteLine()) を出力すると、期待するバージョンがあることがわかります。

(デバッガーから) 変数を強調表示し、虫めがねアイコンの横にあるドロップダウンを選択して [テキスト ビジュアライザー] を選択すると、変数がプレーン テキストでどのように表示されるかがわかります。これはあなたが探しているものかもしれません。

あなたのコメントに従って、文字列をバイトに変換する方法も監視することをお勧めしたいと思います。他のマシンが理解できる形式でバイトをエンコードする必要があります。次のコマンドを使用して、文字列をバイトに変換してください。

System.Text.Encoding.ASCII.GetBytes(mystring);

エンコードされたバージョンではなく、文字列自体のビット表現を送信しているのではないかと疑っています。

于 2013-01-09T18:41:34.920 に答える