2011-08-18 106 views
22

可能重複:
Escape curly brace '{' in String.Format用花括號C#的String.Format字符串

C#有一個方法的String.Format,使您可以格式化字符串,但使用的標記插入PARAMS {0}{1}

我想創建一個簡單的json字符串,它需要大括號在字符串中,所以它是打破格式化

String.Format("{ foo:'{0}', bar:'{1}' }", foo, bar); 

添加括號前逃生並沒有幫助

拋出一個異常說我的字符串格式不正確,任何人都知道如何解決這個問題?

+0

在Framework 4.6或更高版本,你可以做到這一點... \t串教育部= 「萌」; \t string larry =「拉里」; \t string curly =「{Curly}」; \t字符串結果= $「1:{moe} 2:{larry} 3:{curly}」; – rwg

回答

44

您可以通過它們在你的格式字符串倍增逃避括號:

string.Format("{{ foo: '{0}', bar: '{1}' }}", foo, bar); 
11

您可以簡單地使用{{}}逃脫大括號。

Console.WriteLine(String.Format("{0}, {1}, {{{2}}}", "Moe", "Larry", "Curly")); 

生產:

萌,拉里,{}捲毛

+5

你需要小心大括號上的三連詞......在這種情況下,它可以工作,但一般來說,解析器是否將其視爲'{{{'或'}}}'。創建一個支撐本身的{3}可能會更好 –