【发布时间】:2020-06-11 15:05:52
【问题描述】:
我有一个这样的 .json:
[
{
"number":"00000001",
"dt_doc":"2019-09-26T17:39.000Z",
"address":"complete address"
}
]
但是我的字段 dt_doc 有问题,这是我的反序列化代码... 我主要有这个:
public override void CreateNewOutputRows()
{
String jsonFileContent = File.ReadAllText(Variables.JsonFilePath);
JavaScriptSerializer js = new JavaScriptSerializer();
List<Testata> testata = js.Deserialize<List<Testata>>(jsonFileContent);
foreach(Testata test in testata)
{
Output0Buffer.AddRow();
Output0Buffer.number= test.number;
Output0Buffer.dtdoc = test.dt_doc;
Output0Buffer.address= test.address;
}
}
在我的类 Testata.cs 中,我以这种方式定义了该字段:
public DateTime dt_doc { get; set; }
但是我在这个领域遇到了一个异常,可能与8601标准有关,有什么办法解决吗?
这是个例外:
错误:System.FormatException: 2019-09-26T17:39.000Z 它不是 DateTime 的有效值。 ---> System.FormatException: 字符串未被识别为有效的 DateTime 值。
【问题讨论】:
-
不推荐使用
JavaScriptSerializer类,改用Json.NET。要使用JavaScriptSerializer实现它,您应该创建自定义JavaScriptConverter,如answer 中所示
标签: c# json ssis deserialization json-deserialization