用双倍双引号替换双引号

时间:2013-04-26 08:57:06

标签: c# .net string replace

我该怎么做?

当前字符串:

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

目标:

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

2 个答案:

答案 0 :(得分:3)

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

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

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

结果:

enter image description here

答案 1 :(得分: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# 中的""不存在 ;它们只是逃避 - 您需要将它们视为"