如何从 ASP.NET 中的 json 反序列化基本类型(System.Runtime.Serialization.Json)
Posted
技术标签:
【中文标题】如何从 ASP.NET 中的 json 反序列化基本类型(System.Runtime.Serialization.Json)【英文标题】:How can I deserialize elementary types from json in ASP.NET(System.Runtime.Serialization.Json) 【发布时间】:2010-12-15 19:34:36 【问题描述】:我有一个小问题。
当我将DataContractJsonSerializer
与复杂类型(自己的类型)一起使用时,它可以正常工作。但我必须从字符串中反序列化 TimeStamp 或 DateTime。所以我不能用 DataContract、DataMember 属性来标记这些类型。
我写了一些代码
string jsonedTS = "PT2M15S";
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(TimeSpan));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonedTS));
try
result.Takes = (TimeSpan) jsonSerializer.ReadObject(ms);
catch
;
我发现了这个异常
“反序列化 System.TimeSpan 类型的对象时出错。遇到意外字符'P'。” System.Exception System.Runtime.Serialization.SerializationException
我的问题是 如何反序列化
【问题讨论】:
【参考方案1】:您可以尝试使用 Json.Net 库 - 过去它对我们来说效果很好。
【讨论】:
以上是关于如何从 ASP.NET 中的 json 反序列化基本类型(System.Runtime.Serialization.Json)的主要内容,如果未能解决你的问题,请参考以下文章