奇怪的System.Format例外

时间:2015-05-24 08:38:49

标签: c# string.format

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

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);
    }
} 

可以轻松复制,但我添加了异常详情: “mscorlib.dll

中发生了'System.FormatException'类型的未处理异常

其他信息:输入字符串的格式不正确。“

1 个答案:

答案 0 :(得分:4)

您需要使用{{{ }转义}},因为String.Format会搜索{0:000}之类的参数但而是找到{"dateBooking ... },它不是有效的参数格式。这就是FormatException引发的原因。

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