奇怪的系统.格式例外

本文关键字:格式 系统 | 更新日期: 2023-09-27 17:50:30

我只是想为我的单元测试建立一个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);
    }
} 

它可以很容易地复制,但我要添加异常细节:

"类型为'System '的未处理异常。FormatException'发生在mscorlib.dll

附加信息:输入字符串格式不正确。"

奇怪的系统.格式例外

您需要用{{转义{,用}}转义},因为String.Format将搜索像{0:000}这样的参数,而不是找到没有有效参数格式的{"dateBooking ... }。这就是为什么FormatException会引发。

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