3

有没有人可以帮我解决string.Format下线。在“2056”中,我需要作为 {0} 传递。

string body = @"{""idTimeSerie"":""2056"",""idTso"":-1}";

由于双引号,我无法执行它。

我已经尝试过这种方式,但没有成功。

string body = string.Format
                    (@"{""idTimeSerie"": "" \"{0}\" "",""idTso"":-1}", countryID);
4

4 回答 4

3

你必须避开花括号

将 { 替换为 {{

string body = @"{{""idTimeSerie"":""2056"",""idTso"":-1}}";

编辑:来自 MSDN - 另一种转义方式

左大括号和右大括号被解释为格式项的开始和结束。因此,您必须使用转义序列来显示文字左大括号或右大括号。在固定文本中指定两个左大括号(“{{”)以显示一个左大括号(“{”),或两个右大括号(“}}”)以显示一个右大括号(“}”)。格式项中的大括号按照遇到的顺序依次解释。不支持解释嵌套大括号。

int value = 6324;
string output = string.Format("{0}{1:D}{2}", 
                             "{", value, "}");
Console.WriteLine(output);
// The example displays the following output: 
//       {6324}
于 2013-04-22T15:28:39.803 回答
2

试试这个:

string body = string.Format(@"{{ ""idTimeSerie"": ""{0}"", ""idTso"": -1 ", countryID) + "}";

解释:

1)使用@风格的字符串文字时,双引号用""(两个连续的双引号)表示。

见 MSDN:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

2) 使用{{and分别以字符串格式}}表示文字{和。}

请参阅 MSDN(转义大括号):

在固定文本中指定两个左大括号(“{{”)以显示一个左大括号(“{”),或两个右大括号(“}}”)以显示一个右大括号(“}”)。

于 2013-04-22T15:27:22.383 回答
2

你可以这样做:

string body = string.Format("{{\"idTimeSerie\":\"{0}\",\"idTso\":-1}}", countryID);
于 2013-04-22T15:31:55.970 回答
0

在这种情况下,不要使用逐字字符串。我怀疑你想要:

string body = string.Format("{\"idTimeSerie\":\"{0}\",\"idTso\":-1}", countryID);
于 2013-04-22T15:28:45.740 回答