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 HResult=0x80131500 Message=Unexpected字符:{。路径‘,第1行,位置1。Newtonsoft.Json.JsonTextReader.ReadAsDateTime()的Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader阅读器处的Source=Newtonsoft.Json StackTrace: Source=Newtonsoft.Json StackTrace),Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader阅读器的JsonContract contract,布尔hasConverter),Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader读取器的objectType类型,布尔值( checkAdditionalContent),Newtonsoft.Json.JsonConvert.DeserializeObject(String值的objectType类型,类型类型,( Newtonsoft.Json.JsonConvert.DeserializeObjectT at Newtonsoft.Json.JsonConvert.DeserializeObjectT at test.Program.Main(String[] args),E:\code\UI\test\Program.cs:line 77 )
我的代码:
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进行构建,我的错误在哪里?
发布于 2020-11-14 08:43:49
您的反序列化对象实际上是
public class Rootobject
{
public int date { get; set; }
public int day { get; set; }
public int hours { get; set; }
public int minutes { get; set; }
public int month { get; set; }
public int nanos { get; set; }
public int seconds { get; set; }
public long time { get; set; }
public int timezoneOffset { get; set; }
public int year { get; set; }
}而且不能将该类直接反序列化为DateTime。
现在我想到了两个选择。使用自定义转换器或从RootObject类的属性创建一个新的RootObject实例。
https://stackoverflow.com/questions/64831099
复制相似问题