void f(string message)
{
string.Format(message,"x",y");
}
f()由g:
调用g()
{
f(SomeJson+"{0}");
}
json中的花括号被f()中的string.format()
解释为值的占位符。
有没有办法让花括号逃脱?
答案 0 :(得分:10)
将它们加倍:
f(SomeJson+"{{0}}");
或者在JSON中替换它们,如果这是你需要的:
f(SomeJson.Replace("{", "{{")
.Replace("}", "}}") + "{0}");
您还可以将此作业委派给扩展方法:
public static class StringExtensions
{
public static string EscapeBraces(this string s)
{
return s.Replace("{", "{{")
.Replace("}", "}}");
}
}
f(SomeJson.EscapeBraces() + "{0}");
或者,正如Ergwun所说,你可以简单地将这些值连接起来。不过,我的假设是,在实际代码中,这不像在这个简单的例子中那么直截了当。