我运行简单的反序列化到自己的类型事件:
JSON.Deserialize<Event>(text);
Run Code Online (Sandbox Code Playgroud)
除外:
An exception of type 'Jil.DeserializationException' occurred in Jil.dll but was not handled in user code.
Additional information: Expected character: '\'
Run Code Online (Sandbox Code Playgroud)
Newtonsoft的JSON反序列化在同一个json上运行良好,JSONLint也确认JSON有效.这里有线索吗?我尝试传入字符串,以及使用使用(StringReader),如JIL的github页面上所建议的那样.
我有一个简单的不变POCO定义为:
public sealed class Person
{
public Person(string name)
{
Name = name;
TimeStamp = DateTimeOffset.UtcNow;
}
public DateTimeOffset TimeStamp { get; }
public string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
然后,我执行一个简单的ser反序列化:
var p = new Person("Mr Right").Dump();
var ser = JSON.Serialize(p).Dump();
// Throws Deserialization Exception, Error occured building a deserializer,
// Expected a parameterless constructor...
JSON.Deserialize<Person>(ser).Dump();
Run Code Online (Sandbox Code Playgroud)
序列化成功产生:
{“ TimeStamp”:“ / Date(1456412550349 + 0000)/”,“ Name”:“ Mr Right”}
但是反序列化抛出了,有什么办法解决吗?是否JIL支持使用参数化构造函数对类型进行反序列化?