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 回答