【发布时间】:2020-11-14 05:04:02
【问题描述】:
JSON 是:
{"date":13,"day":5,"hours":19,"minutes":6,"month":10,"nanos":0,"seconds":41,"time":1605265601000,"timezoneOffset":-480,"year":120}
当我尝试转换为DateTime时,遇到以下错误:
Newtonsoft.Json.JsonReaderException H结果=0x80131500 消息=解析值时遇到意外字符:{。路径'',第 1 行,位置 1。 来源=Newtonsoft.Json 堆栈跟踪: 在 Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType) 在 Newtonsoft.Json.JsonTextReader.ReadAsDateTime() 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 阅读器,类型 objectType,布尔 checkAdditionalContent) 在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型类型,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值) 在 E:\code\UI\test\Program.cs:line 77 中的 test.Program.Main(String[] args) 处
我的代码:
var txt = "{\"date\":13,\"day\":5,\"hours\":19,\"minutes\":6,\"month\":10,\"nanos\":0,\"seconds\":41,\"time\":1605265601000,\"timezoneOffset\":-480,\"year\":120}";
var aa = Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime>(txt);
Console.ReadKey();
当我改用 Newtonsoft.Json.dll 3.5 版本时,错误消失了。 当我改用Newtonsoft.Json.dll 9.0版本时,出现错误。
我正在使用 VS2017 构建,我的错误在哪里?
【问题讨论】:
-
它正在搜索
saleTime不存在于DateTime中的属性 -
我认为您应该创建一个相应的 JSON txt 类并反序列化到您的类并使用方法公开 saleTime。
-
我很抱歉这个错误,并再次编辑问题,销售时间被删除
-
通过不删除
saleTime文本,我也尝试通过DateTime 属性创建一个类,例如public class DateTest { public DateTime saleTime { get; set; } },并将反序列化代码修改为此:`var aa = Newtonsoft. Json.JsonConvert.DeserializeObject(txt); `,错误也存在