看起来你的错误是not在以以下开头的行中var insertdata = new ClientIndividualTable
但之前的一些行。
您的错误可能会出现与此类似的行。
MyJsonClass item = JsonConvert.DeserializeObject<MyJsonClass>(fileText);
您必须创建一个日期时间转换器,以便 Newtonsoft 知道如何处理所使用的自定义格式。之后,您必须装饰用于向 DateTime 属性添加属性的类。
JSON 文件示例:
{
"COID" : "myCompanyId",
"CLIENTID" : "myClientId",
"BIRTHDAY" : "20-09-1982 12:00:00",
}
与JSON结构匹配的类:
public class MyJsonClass
{
public string COID { get; set; }
public string CLIENTID { get; set; }
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime? BIRTHDAY { get; set; }
}
And the JsonConverter
会与此类似。
public class CustomDateTimeConverter : DateTimeConverterBase
{
private const string Format = "dd-MM-yyyy HH:mm:ss";
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString(Format));
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value == null)
{
return null;
}
var s = reader.Value.ToString();
DateTime result;
if (DateTime.TryParseExact(s, Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
return result;
}
return null;
}
}
注意:我的答案是基于此博客文章 https://blog.kulman.sk/custom-datetime-deserialization-with-json-net/