-4

我该怎么做?

当前字符串:

string json = @"[{"data":{"JobID":"1",,"Amount":"6500","Description":"a"}}]";

目标:

string json = @"[{""data"":{""JobID"":""1"",,""Amount"":""6500"",""Description"":""a""}}]";
4

2 回答 2

3

只需尝试Replace("\"", "\"\"")

string json = "[{\"data\":{\"JobID\":\"1\",,\"Amount\":\"6500\",\"Description\":\"a\"}}]";

string result = json.Replace("\"", "\"\"");

结果:

在此处输入图像描述

于 2013-04-26T08:59:18.953 回答
2

C# 中的@"..."语法是逐字字符串文字;这意味着编译器不使用转义等\n,而是\"直接处理所有字符,除了"必须由 . 表示的字符""。因此,以下行不是有效的 C#:

string json = @"[{"data":{"JobID":"1",,"Amount":"6500","Description":"a"}}]";

这违反了 C# 逐字字符串文字的转义规则。正确的 C# 是您已经拥有的

string json = @"[{""data"":{""JobID"":""1"",,""Amount"":""6500"",""Description"":""a""}}]";

由于第一行无论如何都无效,所以问它们之间如何转换是没有意义的,除了说:写有效的C#。

但是,第二个字符串仍然代表json数据:

[{"data":{"JobID":"1",,"Amount":"6500","Description":"a"}}]

""C#中不存在;它们只是转义-您需要将它们阅读为".

于 2013-04-26T09:06:18.460 回答