奇数 System.Format 异常

Odd System.Format Exception

我正试图为我的单元测试构建一个 json 字符串,但意外地出现以下代码 returns 系统格式异常。错误消息表明它正在尝试解析日期,这对我来说很奇怪。我不是要解析日期。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(GetJson());
        Console.ReadKey();
    }

    static string GetJson(string dateStr = "", string lta = "5.25")
    {
        return String.Format("[{\"dateBooking\":\"{0}\",\"lta\":\"{1}\"}]", dateStr, lta);
    }
} 

它可以很容易地重现,但我正在添加异常细节:

"An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

Additional information: Input string was not in a correct format."

您需要使用 {{ 转义 { 并使用 }} 转义 } 因为 String.Format 将搜索类似 [=16= 的参数] 而是发现 {"dateBooking ... } 不是有效的参数格式。这就是引发 FormatException 的原因。

return String.Format("[{{\"dateBooking\":\"{0}\",\"lta\":\"{1}\"}}]", dateStr, lta);