转义字符串格式的大括号

本文关键字:格式 转义字符 字符串 转义 | 更新日期: 2023-09-27 18:31:49

void f(string message)
{
    string.Format(message,"x",y");
}

f() 由 g 调用:

g()
{
   f(SomeJson+"{0}");
}

JSON 中的大括号被解释为 f() 中 string.format() 的值的占位符。有没有办法让大括号逃脱?

转义字符串格式的大括号

将它们加倍:

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 所说,您可以简单地在之后连接这些值。不过,我的假设是,在您的实际代码中,这不如在这个微不足道的例子中那么简单。