2013-04-22 660 views
2

有人可以幫我string.Format下線。在'2056'我需要通過{0}。String.Format中的雙引號在C#

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

由於雙引號,我不能讓它執行。

我試過這種方式,但沒有成功。

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

試圖逃避花括號{到{{ – dekdev 2013-04-22 15:35:33

回答

3

你有逃跑的花括號

替換{到{{

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

編輯:From MSDN - Another way of Escaping

打開和關閉括號被解釋爲起點並結束 格式項目。因此,您必須使用轉義序列來顯示 文字左右大括號或右大括號。在固定文本中指定兩個開放大括號 (「{{」)以顯示一個大括號(「{」)或兩個 大括號(「}}」)以顯示一個大括號(「}」)。 格式項目中的大括號將按照它們遇到的 的順序進行順序解釋。不支持解釋嵌套大括號。

int value = 6324; 
string output = string.Format("{0}{1:D}{2}", 
          "{", value, "}"); 
Console.WriteLine(output); 
// The example displays the following output: 
//  {6324} 
+0

優秀的作品隊友..感謝一噸..真正讚賞 – user1990395 2013-04-22 15:35:29

+0

我有類似的問題 - 什麼時候編寫代碼生成器 – dekdev 2013-04-22 15:36:53

+0

我試過用字符串文字,但不知道爲什麼它不工作...但使用雙{{括號它zoomeddd ... :-) – user1990395 2013-04-22 15:39:34

2

試試這個:

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

說明:

1) 當使用字符串文字的@味,雙引號被""(兩個連續的雙引號表示)。

See MSDN:

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

2)使用 和{{}}分別表示在字符串格式文字{}

See MSDN (Escaping Braces):

指定兩個開括號( 「{{」)在固定的文本,以顯示一個開口括號( 「{」),或兩個閉括號( 「}}」)來顯示一個封閉括號(「}」)。

+0

我已經嘗試了不同的像你說的,但沒有用...繩體=字符串。格式(@「{」「idTimeSerie」「:」「」「{0}」「」「」「idTso」「: - 1}」,countryID); – user1990395 2013-04-22 15:31:17

+0

'string.Format(@「」「idTimeSerie」「:」「{0}」「,」「idTso」「: - 1」,2056)'的作品。 – Ferruccio 2013-04-22 15:32:58

+0

嘗試更新的解決方案。我第一次沒有注意到單個花括號。 – allonhadaya 2013-04-22 15:48:14

0

不要在這種情況下使用逐字字符串。我懷疑你想:

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

@simplecoder正確,但我沒有使用這個例子中的逐字字符串是我...? – DGibbs 2013-04-22 15:37:59

+0

@simplecoder爲了'String.Format()'的緣故,你必須將{{改爲{{},而不是逐字字符串文字。看到我的答案。 – allonhadaya 2013-04-22 15:46:21

2

你可以這樣做:

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

你有沒有試過運行這個?由於嵌套大括號,您可能會遇到InvalidFormatException。 (我使用單聲道) – allonhadaya 2013-04-23 15:19:47

+0

是的,工作:)) – 2013-05-02 21:34:11