2011-08-18 9 views
22

可能性の重複:
Escape curly brace '{' in String.FormatC#String.Formatの

C#は、文字列をフォーマットすることができますString.Formatのメソッドを持っていますが、トークンでのparamsを挿入{0}{1}

私は、中かっこを文字列に入れる必要がある単純なjson文字列を作成しようとしています。

は私の文字列が正しくフォーマットされたと言って例外をスローする助けにはならなかった括弧の前にエスケープを追加するフォーマッタ

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

、誰もがこの問題を回避する方法を知っているを壊しますか?

+0

以上は、あなたがこれを行うことができます{}カーリー... 。 \t文字列larry = "Larry"; \t文字列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")); 

は生成します。

萌え、ラリー、\t文字列萌え= "萌え" フレームワーク4.6では

+5

あなたはトリプルアップを気にする必要があります。この場合は動作しますが、一般的にパーサービューは '{{{'または '}}}'です。ブレースそのもの{3}を作成する方が良いでしょう –