Newtonsoft.Json.JsonSerializationException 从 Akavache 存储中获取对象时
Newtonsoft.Json.JsonSerializationException when fetching an object from Akavache storage
将对象实例放入 Akavache 存储时,一切正常。但是当试图从存储中获取它时,我收到以下错误消息:
Newtonsoft.Json.JsonSerializationException: Unexpected token while deserializing object: EndObject. Path 'Value.Tracks[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0015f] in <filename unknown>:0
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, Boolean checkAdditionalContent) [0x0007e] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000b] in /Users/builder/data/lanes/1503/c2c00129/source/mono/mcs/class/corlib/System.Runtime.ExceptionServices/ExceptionDispatchInfo.cs:61
at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow (System.Exception exception) [0x00006] in <filename unknown>:0
at System.Reactive.ExceptionHelpers.ThrowIfNotNull (System.Exception exception) [0x0000d] in <filename unknown>:0
at System.Reactive.Subjects.AsyncSubject`1[System.Collections.Generic.IEnumerable`1[Core.OfflineTrackCollection]].GetResult () [0x00039] in <filename unknown>:0
at Core.OfflineTrackCollectionClient+<GetAll>c__async0.MoveNext () [0x00080] in /--Path--/Core/OfflineTrackCollectionClient.cs:30
我之前使用以下反序列化器从远程服务获取 JSON 后反序列化了该对象:
// Try to parse the response into the requested object
var settings = new JsonSerializerSettings { ContractResolver = new UnderscoreMappingResolver() };
var obj = JsonConvert.DeserializeObject<T>(jsonString, settings);
在 class T
中,我使用了一些自定义 JsonConverter
并使用 JsonProperty
设置了 属性-name - 全部由注解。 DateTime 对象也在这里(如果有话要说..)
我想不通,我在这里做错了什么 - 我还没有在网上找到任何东西。后面可以看到对象OfflineTrackCollection
我这里试试。我试过的是,如果我删除 Track
列表或将其留空,它就会起作用。所以它与跟踪对象有关(您可以在下面找到该对象)。你有什么想法,或者你之前有过这个问题吗?
这是 class 和一些对象。如果您想查看更多代码,请联系我。转换器没有被调用(至少调试器没有停止)。
namespace Core
{
public class OfflineTrackCollectionClient : IOfflineTrackCollectionClient
{
const string STORAGE_PREFIX = "track_collection_";
public async Task<IList<OfflineTrackCollection>> GetAll()
{
try {
var objects = await BlobCache.LocalMachine.GetAllObjects<OfflineTrackCollection>();
return objects.ToList();
} catch (Exception e)
{
throw;
}
}
public async Task Save(TrackCollection item)
{
var offlineTrackCollection = new OfflineTrackCollection() { Id = item.Id, Name = item.Name };
foreach(var track in item.Tracks)
offlineTrackCollection.Tracks.Add(track);
await BlobCache.LocalMachine.InsertObject<OfflineTrackCollection>(STORAGE_PREFIX + offlineTrackCollection.Id, offlineTrackCollection);
}
}
[JsonObject]
public class OfflineTrackCollection
{
public int Id { get; set; }
public string Name { get; set; }
public IList<Track> Tracks { get; set; }
}
[JsonObject]
public class Track : Document
{
public Track()
{
Type = DocumentType.TRACK;
}
public int ParentId { get; set; }
public bool IsVisible { get; set; }
[JsonConverter(typeof (StringEnumConverter))]
public TrackSubType Subtype { get; set; }
public IEnumerable<string> Tags { get; set; }
public DateTime RecordedAt { get; set; }
[JsonProperty(PropertyName = "_meta")]
public TrackMetadata Meta { get; set; }
public IEnumerable<TrackMedia> Media { get; set; }
}
[JsonObject]
[JsonConverter(typeof (DocumentConverter))]
public class Document
{
public int Id { get; set; }
[JsonConverter(typeof (StringEnumConverter))]
public DocumentType Type { get; set; }
public bool ShouldSerializeId()
{
return false;
}
}
}
namespace Core.JsonConverter
{
public class DocumentConverter : JsonCreationConverter<Document>
{
protected override Document Create(Type objectType, JObject jObject)
{
// First check up if the objectType is already fixed to a implementation.
if (objectType == typeof (Track))
return new Track();
// A type has to be defined for type-juggling.
if (jObject["type"] == null)
{
throw new NotImplementedException("The type of the document has not been defined!");
}
// Try to find out what the implementation is.
switch (jObject["type"].Value<string>())
{
case "track":
return new Track();
}
throw new NotImplementedException("The type " + jObject["type"].Value<string>() +
" is not implemented in the DocumentConverter.");
}
}
// Copied from
public abstract class JsonCreationConverter<T> : Newtonsoft.Json.JsonConverter
{
public override bool CanRead
{
get { return true; }
}
public override bool CanWrite
{
get { return false; }
}
/// <summary>
/// Create an instance of objectType, based properties in the JSON object
/// </summary>
/// <param name="objectType">type of object expected</param>
/// <param name="jObject">
/// contents of JSON object that will be deserialized
/// </param>
/// <returns></returns>
protected abstract T Create(Type objectType, JObject jObject);
public override bool CanConvert(Type objectType)
{
return typeof (T).GetTypeInfo().IsAssignableFrom(objectType.GetTypeInfo());
}
public override object ReadJson(JsonReader reader,
Type objectType,
object existingValue,
JsonSerializer serializer)
{
// Load JObject from stream
var jObject = JObject.Load(reader);
// Create target object based on JObject
var target = Create(objectType, jObject);
// Populate the object properties
serializer.Populate(jObject.CreateReader(), target);
return target;
}
public override void WriteJson(JsonWriter writer,
object value,
JsonSerializer serializer)
{
// Should never be called, as the property CanWrite is set to FALSE
throw new NotImplementedException();
}
}
}
EDIT 添加了 JsonConverter 和我在调用 BitConverter.ToString(await BlobCache.LocalMachine.Get("track_collection_1"))
:
时得到的数据
CA-11-00-00-03-56-61-6C-75-65-00-BE-11-00-00-10-49-64-00-34-2D-00-00-02-4E-61-6D-65-00-05-00-00-00-42-72-65-77-00-04-54-72-61-63-6B-73-00-9A-11-00-00-03-30-00-DF-09-00-00-10-50-61-72-65-6E-74-49-64-00-5F-AA-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-10-4F-72-64-65-72-00-02-00-00-00-02-53-75-62-74-79-70-65-00-07-00-00-00-73-70-65-65-63-68-00-04-54-61-67-73-00-05-00-00-00-00-09-52-65-63-6F-72-64-65-64-41-74-00-00-F0-70-AA-11-01-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-04-72-65-6C-00-AE-02-00-00-03-30-00-38-00-00-00-10-49-64-00-A2-8E-00-00-02-4E-61-6D-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-54-79-70-65-00-0A-00-00-00-69-6E-74-65-72-70-72-65-74-00-00-03-31-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-11-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-32-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-12-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-33-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-13-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-34-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-03-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-35-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-04-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-36-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-05-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-37-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-04-00-00-00-10-56-65-72-73-65-00-0A-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-38-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-04-00-00-00-10-56-65-72-73-65-00-0B-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-00-03-5F-6D-65-74-61-00-92-05-00-00-10-52-6F-6F-74-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-28-1F-04-69-45-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-0D-00-00-00-73-69-6D-6F-6E-73-69-6D-63-69-74-79-00-02-54-69-74-6C-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-4C-61-6E-67-75-61-67-65-00-04-00-00-00-6E-6F-62-00-02-41-6C-62-75-6D-00-2C-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-2C-20-4D-C3-B8-74-65-20-66-72-65-2E-20-36-2E-20-61-70-72-2E-20-32-30-3A-30-30-00-10-54-72-61-63-6B-6E-75-6D-62-65-72-00-02-00-00-00-02-41-72-74-69-73-74-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-4C-79-72-69-63-69-73-74-00-01-00-00-00-00-02-43-6F-6D-70-6F-73-65-72-00-01-00-00-00-00-02-50-75-62-6C-69-73-68-65-72-00-1A-00-00-00-50-75-62-6c-69-73-68-65-72-00-10-49-74-75-6E-65-73-63-6F-6D-70-69-6C-61-74-69-6F-6E-00-01-00-00-00-02-41-74-74-61-63-68-65-64-50-69-63-74-75-72-65-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-02-54-69-6D-65-00-05-00-00-00-30-30-30-30-00-02-44-61-74-65-00-05-00-00-00-30-31-30-34-00-02-59-65-61-72-00-05-00-00-00-32-30-30-37-00-02-43-6F-70-79-72-69-67-68-74-00-23-00-00-00-43-6f-70-79-72-69-67-68-74-00-03-50-61-72-65-6E-74-00-84-01-00-00-10-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-02-42-6D-6D-49-64-00-08-00-00-00-30-37-30-34-4D-30-32-00-04-54-61-67-73-00-14-00-00-00-02-30-00-08-00-00-00-4D-65-65-74-69-6E-67-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-F8-AB-0D-C8-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-80-CA-ED-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-0A-43-6F-76-65-72-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-19-00-00-00-4D-C3-B8-74-65-20-66-72-65-2E-20-36-2E-20-61-70-72-2E-20-32-30-3A-30-30-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-03-52-6F-6F-74-50-61-72-65-6E-74-00-E2-01-00-00-0A-50-61-72-65-6E-74-49-64-00-0A-42-6D-6D-49-64-00-04-54-61-67-73-00-1E-00-00-00-02-30-00-12-00-00-00-45-61-73-74-65-72-20-43-6F-6E-66-65-72-65-6E-63-65-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-18-DB-F4-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-02-43-6F-76-65-72-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-12-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-00-0A-43-6F-76-65-72-55-72-6C-00-0A-41-76-61-69-6C-61-62-6C-65-4C-61-6E-67-75-61-67-65-73-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-0A-54-69-74-6C-65-00-04-4D-65-64-69-61-00-D4-00-00-00-03-30-00-CC-00-00-00-02-54-79-70-65-00-06-00-00-00-61-75-64-69-6F-00-04-46-69-6C-65-73-00-B0-00-00-00-03-30-00-A8-00-00-00-02-4D-69-6D-65-54-79-70-65-00-0B-00-00-00-61-75-64-69-6F-2F-6D-70-65-67-00-10-53-69-7A-65-00-62-4D-ED-00-10-44-75-72-61-74-69-6F-6E-00-CB-03-00-00-02-55-72-6C-00-69-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-74-72-61-63-6B-2F-34-33-36-31-38-2F-74-72-61-63-6B-5F-34-33-36-31-38-5F-6D-65-64-69-61-5F-6E-62-2E-6D-70-33-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-34-31-34-30-35-30-31-35-31-00-00-00-00-00-02-54-79-70-65-00-06-00-00-00-74-72-61-63-6B-00-00-03-31-00-B0-07-00-00-10-50-61-72-65-6E-74-49-64-00-9C-AA-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-10-4F-72-64-65-72-00-10-00-00-00-02-53-75-62-74-79-70-65-00-07-00-00-00-73-70-65-65-63-68-00-04-54-61-67-73-00-05-00-00-00-00-09-52-65-63-6F-72-64-65-64-41-74-00-00-F0-70-AA-11-01-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-04-72-65-6C-00-8D-00-00-00-03-30-00-38-00-00-00-10-49-64-00-AD-8E-00-00-02-4E-61-6D-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-54-79-70-65-00-0A-00-00-00-69-6E-74-65-72-70-72-65-74-00-00-03-31-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-6D-69-63-00-10-43-68-61-70-74-65-72-00-07-00-00-00-10-56-65-72-73-65-00-04-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-00-03-5F-6D-65-74-61-00-84-05-00-00-10-52-6F-6F-74-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-78-2F-0D-69-45-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-0D-00-00-00-73-69-6D-6F-6E-73-69-6D-63-69-74-79-00-02-54-69-74-6C-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-4C-61-6E-67-75-61-67-65-00-04-00-00-00-6E-6F-62-00-02-41-6C-62-75-6D-00-2D-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-2C-20-4D-C3-B8-74-65-20-73-C3-B8-6E-2E-20-38-2E-20-61-70-72-2E-20-31-31-3A-30-30-00-10-54-72-61-63-6B-6E-75-6D-62-65-72-00-10-00-00-00-02-41-72-74-69-73-74-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-4C-79-72-69-63-69-73-74-00-01-00-00-00-00-02-43-6F-6D-70-6F-73-65-72-00-01-00-00-00-00-02-50-75-62-6C-69-73-68-65-72-00-1A-00-00-00-50-75-62-6c-69-73-68-65-72-00-10-49-74-75-6E-65-73-63-6F-6D-70-69-6C-61-74-69-6F-6E-00-01-00-00-00-02-41-74-74-61-63-68-65-64-50-69-63-74-75-72-65-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-02-54-69-6D-65-00-05-00-00-00-30-30-30-30-00-02-44-61-74-65-00-05-00-00-00-30-31-30-34-00-02-59-65-61-72-00-05-00-00-00-32-30-30-37-00-02-43-6F-70-79-72-69-67-68-74-00-23-00-00-00-43-6f-70-79-72-69-67-68-74-00-03-50-61-72-65-6E-74-00-75-01-00-00-10-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-02-42-6D-6D-49-64-00-08-00-00-00-30-37-30-34-4D-30-35-00-04-54-61-67-73-00-14-00-00-00-02-30-00-08-00-00-00-4D-65-65-74-69-6E-67-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-50-DE-6B-D0-11-01-00-00-03-5F-6D-65-74-61-00-71-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-58-8F-F1-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-23-00-00-00-02-30-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-31-00-07-00-00-00-73-70-65-65-63-68-00-00-00-0A-43-6F-76-65-72-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-1A-00-00-00-4D-C3-B8-74-65-20-73-C3-B8-6E-2E-20-38-2E-20-61-70-72-2E-20-31-31-3A-30-30-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-03-52-6F-6F-74-50-61-72-65-6E-74-00-E2-01-00-00-0A-50-61-72-65-6E-74-49-64-00-0A-42-6D-6D-49-64-00-04-54-61-67-73-00-1E-00-00-00-02-30-00-12-00-00-00-45-61-73-74-65-72-20-43-6F-6E-66-65-72-65-6E-63-65-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-18-DB-F4-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-02-43-6F-76-65-72-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-12-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-00-0A-43-6F-76-65-72-55-72-6C-00-0A-41-76-61-69-6C-61-62-6C-65-4C-61-6E-67-75-61-67-65-73-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-0A-54-69-74-6C-65-00-04-4D-65-64-69-61-00-D4-00-00-00-03-30-00-CC-00-00-00-02-54-79-70-65-00-06-00-00-00-61-75-64-69-6F-00-04-46-69-6C-65-73-00-B0-00-00-00-03-30-00-A8-00-00-00-02-4D-69-6D-65-54-79-70-65-00-0B-00-00-00-61-75-64-69-6F-2F-6D-70-65-67-00-10-53-69-7A-65-00-2E-77-1E-00-10-44-75-72-61-74-69-6F-6E-00-7C-00-00-00-02-55-72-6C-00-69-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-74-72-61-63-6B-2F-34-33-36-39-33-2F-74-72-61-63-6B-5F-34-33-36-39-33-5F-6D-65-64-69-61-5F-6E-62-2E-6D-70-33-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-34-31-34-30-35-30-31-38-30-00-00-00-00-00-02-54-79-70-65-00-06-00-00-00-74-72-61-63-6B-00-00-00-00-00
我真的不知道 Akavache 如何进行序列化以将对象存储在 SQL 文件中的细节......但它要么不在此处存储该对象,要么在发送之前对其进行一些处理它进入 JsonSerialization
在做一个最小的例子时,我回忆起我犯的错误:
在我调用序列化程序时,Akavache 还不知道 UnderscoreMappingResolver
。因此,它将文档序列化并保存为 { Type: "track" }
但 DocumentConverter
期望 属性 Type
在反序列化时为小写,就像反序列化时所做的那样JSON 我从服务器得到的字符串。
我 - 当时 - 通过在 DocumentConverter
中实现一个开关来修复它,以采用 属性 type
或 Type
。这意味着在 coe 中,我将 jObject["type"]
替换为 jObject["type"] ?? jObject["Type"]
。
今天,我宁愿覆盖 Akavache 的序列化设置:
@DanBeaulieu,我请你调试 JsonCreationConverter<T>
的实现。可能在您的实现中抛出了一个异常,或者它在没有发送您期望的对象实例的情况下退出。
将对象实例放入 Akavache 存储时,一切正常。但是当试图从存储中获取它时,我收到以下错误消息:
Newtonsoft.Json.JsonSerializationException: Unexpected token while deserializing object: EndObject. Path 'Value.Tracks[0]'.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0015f] in <filename unknown>:0
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, Boolean checkAdditionalContent) [0x0007e] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000b] in /Users/builder/data/lanes/1503/c2c00129/source/mono/mcs/class/corlib/System.Runtime.ExceptionServices/ExceptionDispatchInfo.cs:61
at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow (System.Exception exception) [0x00006] in <filename unknown>:0
at System.Reactive.ExceptionHelpers.ThrowIfNotNull (System.Exception exception) [0x0000d] in <filename unknown>:0
at System.Reactive.Subjects.AsyncSubject`1[System.Collections.Generic.IEnumerable`1[Core.OfflineTrackCollection]].GetResult () [0x00039] in <filename unknown>:0
at Core.OfflineTrackCollectionClient+<GetAll>c__async0.MoveNext () [0x00080] in /--Path--/Core/OfflineTrackCollectionClient.cs:30
我之前使用以下反序列化器从远程服务获取 JSON 后反序列化了该对象:
// Try to parse the response into the requested object
var settings = new JsonSerializerSettings { ContractResolver = new UnderscoreMappingResolver() };
var obj = JsonConvert.DeserializeObject<T>(jsonString, settings);
在 class T
中,我使用了一些自定义 JsonConverter
并使用 JsonProperty
设置了 属性-name - 全部由注解。 DateTime 对象也在这里(如果有话要说..)
我想不通,我在这里做错了什么 - 我还没有在网上找到任何东西。后面可以看到对象OfflineTrackCollection
我这里试试。我试过的是,如果我删除 Track
列表或将其留空,它就会起作用。所以它与跟踪对象有关(您可以在下面找到该对象)。你有什么想法,或者你之前有过这个问题吗?
这是 class 和一些对象。如果您想查看更多代码,请联系我。转换器没有被调用(至少调试器没有停止)。
namespace Core
{
public class OfflineTrackCollectionClient : IOfflineTrackCollectionClient
{
const string STORAGE_PREFIX = "track_collection_";
public async Task<IList<OfflineTrackCollection>> GetAll()
{
try {
var objects = await BlobCache.LocalMachine.GetAllObjects<OfflineTrackCollection>();
return objects.ToList();
} catch (Exception e)
{
throw;
}
}
public async Task Save(TrackCollection item)
{
var offlineTrackCollection = new OfflineTrackCollection() { Id = item.Id, Name = item.Name };
foreach(var track in item.Tracks)
offlineTrackCollection.Tracks.Add(track);
await BlobCache.LocalMachine.InsertObject<OfflineTrackCollection>(STORAGE_PREFIX + offlineTrackCollection.Id, offlineTrackCollection);
}
}
[JsonObject]
public class OfflineTrackCollection
{
public int Id { get; set; }
public string Name { get; set; }
public IList<Track> Tracks { get; set; }
}
[JsonObject]
public class Track : Document
{
public Track()
{
Type = DocumentType.TRACK;
}
public int ParentId { get; set; }
public bool IsVisible { get; set; }
[JsonConverter(typeof (StringEnumConverter))]
public TrackSubType Subtype { get; set; }
public IEnumerable<string> Tags { get; set; }
public DateTime RecordedAt { get; set; }
[JsonProperty(PropertyName = "_meta")]
public TrackMetadata Meta { get; set; }
public IEnumerable<TrackMedia> Media { get; set; }
}
[JsonObject]
[JsonConverter(typeof (DocumentConverter))]
public class Document
{
public int Id { get; set; }
[JsonConverter(typeof (StringEnumConverter))]
public DocumentType Type { get; set; }
public bool ShouldSerializeId()
{
return false;
}
}
}
namespace Core.JsonConverter
{
public class DocumentConverter : JsonCreationConverter<Document>
{
protected override Document Create(Type objectType, JObject jObject)
{
// First check up if the objectType is already fixed to a implementation.
if (objectType == typeof (Track))
return new Track();
// A type has to be defined for type-juggling.
if (jObject["type"] == null)
{
throw new NotImplementedException("The type of the document has not been defined!");
}
// Try to find out what the implementation is.
switch (jObject["type"].Value<string>())
{
case "track":
return new Track();
}
throw new NotImplementedException("The type " + jObject["type"].Value<string>() +
" is not implemented in the DocumentConverter.");
}
}
// Copied from
public abstract class JsonCreationConverter<T> : Newtonsoft.Json.JsonConverter
{
public override bool CanRead
{
get { return true; }
}
public override bool CanWrite
{
get { return false; }
}
/// <summary>
/// Create an instance of objectType, based properties in the JSON object
/// </summary>
/// <param name="objectType">type of object expected</param>
/// <param name="jObject">
/// contents of JSON object that will be deserialized
/// </param>
/// <returns></returns>
protected abstract T Create(Type objectType, JObject jObject);
public override bool CanConvert(Type objectType)
{
return typeof (T).GetTypeInfo().IsAssignableFrom(objectType.GetTypeInfo());
}
public override object ReadJson(JsonReader reader,
Type objectType,
object existingValue,
JsonSerializer serializer)
{
// Load JObject from stream
var jObject = JObject.Load(reader);
// Create target object based on JObject
var target = Create(objectType, jObject);
// Populate the object properties
serializer.Populate(jObject.CreateReader(), target);
return target;
}
public override void WriteJson(JsonWriter writer,
object value,
JsonSerializer serializer)
{
// Should never be called, as the property CanWrite is set to FALSE
throw new NotImplementedException();
}
}
}
EDIT 添加了 JsonConverter 和我在调用 BitConverter.ToString(await BlobCache.LocalMachine.Get("track_collection_1"))
:
CA-11-00-00-03-56-61-6C-75-65-00-BE-11-00-00-10-49-64-00-34-2D-00-00-02-4E-61-6D-65-00-05-00-00-00-42-72-65-77-00-04-54-72-61-63-6B-73-00-9A-11-00-00-03-30-00-DF-09-00-00-10-50-61-72-65-6E-74-49-64-00-5F-AA-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-10-4F-72-64-65-72-00-02-00-00-00-02-53-75-62-74-79-70-65-00-07-00-00-00-73-70-65-65-63-68-00-04-54-61-67-73-00-05-00-00-00-00-09-52-65-63-6F-72-64-65-64-41-74-00-00-F0-70-AA-11-01-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-04-72-65-6C-00-AE-02-00-00-03-30-00-38-00-00-00-10-49-64-00-A2-8E-00-00-02-4E-61-6D-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-54-79-70-65-00-0A-00-00-00-69-6E-74-65-72-70-72-65-74-00-00-03-31-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-11-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-32-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-12-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-33-00-4C-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-06-00-00-00-31-20-70-65-74-00-10-43-68-61-70-74-65-72-00-01-00-00-00-10-56-65-72-73-65-00-13-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-34-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-03-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-35-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-04-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-36-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-0E-00-00-00-10-56-65-72-73-65-00-05-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-37-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-04-00-00-00-10-56-65-72-73-65-00-0A-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-03-38-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-72-65-76-00-10-43-68-61-70-74-65-72-00-04-00-00-00-10-56-65-72-73-65-00-0B-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-00-03-5F-6D-65-74-61-00-92-05-00-00-10-52-6F-6F-74-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-28-1F-04-69-45-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-0D-00-00-00-73-69-6D-6F-6E-73-69-6D-63-69-74-79-00-02-54-69-74-6C-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-4C-61-6E-67-75-61-67-65-00-04-00-00-00-6E-6F-62-00-02-41-6C-62-75-6D-00-2C-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-2C-20-4D-C3-B8-74-65-20-66-72-65-2E-20-36-2E-20-61-70-72-2E-20-32-30-3A-30-30-00-10-54-72-61-63-6B-6E-75-6D-62-65-72-00-02-00-00-00-02-41-72-74-69-73-74-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-0d-0a-00-02-4C-79-72-69-63-69-73-74-00-01-00-00-00-00-02-43-6F-6D-70-6F-73-65-72-00-01-00-00-00-00-02-50-75-62-6C-69-73-68-65-72-00-1A-00-00-00-50-75-62-6c-69-73-68-65-72-00-10-49-74-75-6E-65-73-63-6F-6D-70-69-6C-61-74-69-6F-6E-00-01-00-00-00-02-41-74-74-61-63-68-65-64-50-69-63-74-75-72-65-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-02-54-69-6D-65-00-05-00-00-00-30-30-30-30-00-02-44-61-74-65-00-05-00-00-00-30-31-30-34-00-02-59-65-61-72-00-05-00-00-00-32-30-30-37-00-02-43-6F-70-79-72-69-67-68-74-00-23-00-00-00-43-6f-70-79-72-69-67-68-74-00-03-50-61-72-65-6E-74-00-84-01-00-00-10-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-02-42-6D-6D-49-64-00-08-00-00-00-30-37-30-34-4D-30-32-00-04-54-61-67-73-00-14-00-00-00-02-30-00-08-00-00-00-4D-65-65-74-69-6E-67-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-F8-AB-0D-C8-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-80-CA-ED-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-0A-43-6F-76-65-72-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-19-00-00-00-4D-C3-B8-74-65-20-66-72-65-2E-20-36-2E-20-61-70-72-2E-20-32-30-3A-30-30-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-03-52-6F-6F-74-50-61-72-65-6E-74-00-E2-01-00-00-0A-50-61-72-65-6E-74-49-64-00-0A-42-6D-6D-49-64-00-04-54-61-67-73-00-1E-00-00-00-02-30-00-12-00-00-00-45-61-73-74-65-72-20-43-6F-6E-66-65-72-65-6E-63-65-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-18-DB-F4-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-02-43-6F-76-65-72-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-12-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-00-0A-43-6F-76-65-72-55-72-6C-00-0A-41-76-61-69-6C-61-62-6C-65-4C-61-6E-67-75-61-67-65-73-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-0A-54-69-74-6C-65-00-04-4D-65-64-69-61-00-D4-00-00-00-03-30-00-CC-00-00-00-02-54-79-70-65-00-06-00-00-00-61-75-64-69-6F-00-04-46-69-6C-65-73-00-B0-00-00-00-03-30-00-A8-00-00-00-02-4D-69-6D-65-54-79-70-65-00-0B-00-00-00-61-75-64-69-6F-2F-6D-70-65-67-00-10-53-69-7A-65-00-62-4D-ED-00-10-44-75-72-61-74-69-6F-6E-00-CB-03-00-00-02-55-72-6C-00-69-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-74-72-61-63-6B-2F-34-33-36-31-38-2F-74-72-61-63-6B-5F-34-33-36-31-38-5F-6D-65-64-69-61-5F-6E-62-2E-6D-70-33-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-34-31-34-30-35-30-31-35-31-00-00-00-00-00-02-54-79-70-65-00-06-00-00-00-74-72-61-63-6B-00-00-03-31-00-B0-07-00-00-10-50-61-72-65-6E-74-49-64-00-9C-AA-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-10-4F-72-64-65-72-00-10-00-00-00-02-53-75-62-74-79-70-65-00-07-00-00-00-73-70-65-65-63-68-00-04-54-61-67-73-00-05-00-00-00-00-09-52-65-63-6F-72-64-65-64-41-74-00-00-F0-70-AA-11-01-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-04-72-65-6C-00-8D-00-00-00-03-30-00-38-00-00-00-10-49-64-00-AD-8E-00-00-02-4E-61-6D-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-54-79-70-65-00-0A-00-00-00-69-6E-74-65-72-70-72-65-74-00-00-03-31-00-4A-00-00-00-10-54-69-6D-65-73-74-61-6D-70-00-00-00-00-00-02-42-6F-6F-6B-00-04-00-00-00-6D-69-63-00-10-43-68-61-70-74-65-72-00-07-00-00-00-10-56-65-72-73-65-00-04-00-00-00-02-54-79-70-65-00-06-00-00-00-62-69-62-6C-65-00-00-00-03-5F-6D-65-74-61-00-84-05-00-00-10-52-6F-6F-74-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-78-2F-0D-69-45-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-0D-00-00-00-73-69-6D-6F-6E-73-69-6D-63-69-74-79-00-02-54-69-74-6C-65-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-4C-61-6E-67-75-61-67-65-00-04-00-00-00-6E-6F-62-00-02-41-6C-62-75-6D-00-2D-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-2C-20-4D-C3-B8-74-65-20-73-C3-B8-6E-2E-20-38-2E-20-61-70-72-2E-20-31-31-3A-30-30-00-10-54-72-61-63-6B-6E-75-6D-62-65-72-00-10-00-00-00-02-41-72-74-69-73-74-00-0D-00-00-00-4a-6f-68-6e-20-44-6f-65-00-02-4C-79-72-69-63-69-73-74-00-01-00-00-00-00-02-43-6F-6D-70-6F-73-65-72-00-01-00-00-00-00-02-50-75-62-6C-69-73-68-65-72-00-1A-00-00-00-50-75-62-6c-69-73-68-65-72-00-10-49-74-75-6E-65-73-63-6F-6D-70-69-6C-61-74-69-6F-6E-00-01-00-00-00-02-41-74-74-61-63-68-65-64-50-69-63-74-75-72-65-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-02-54-69-6D-65-00-05-00-00-00-30-30-30-30-00-02-44-61-74-65-00-05-00-00-00-30-31-30-34-00-02-59-65-61-72-00-05-00-00-00-32-30-30-37-00-02-43-6F-70-79-72-69-67-68-74-00-23-00-00-00-43-6f-70-79-72-69-67-68-74-00-03-50-61-72-65-6E-74-00-75-01-00-00-10-50-61-72-65-6E-74-49-64-00-D9-5F-01-00-02-42-6D-6D-49-64-00-08-00-00-00-30-37-30-34-4D-30-35-00-04-54-61-67-73-00-14-00-00-00-02-30-00-08-00-00-00-4D-65-65-74-69-6E-67-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-50-DE-6B-D0-11-01-00-00-03-5F-6D-65-74-61-00-71-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-58-8F-F1-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-23-00-00-00-02-30-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-31-00-07-00-00-00-73-70-65-65-63-68-00-00-00-0A-43-6F-76-65-72-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-1A-00-00-00-4D-C3-B8-74-65-20-73-C3-B8-6E-2E-20-38-2E-20-61-70-72-2E-20-31-31-3A-30-30-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-03-52-6F-6F-74-50-61-72-65-6E-74-00-E2-01-00-00-0A-50-61-72-65-6E-74-49-64-00-0A-42-6D-6D-49-64-00-04-54-61-67-73-00-1E-00-00-00-02-30-00-12-00-00-00-45-61-73-74-65-72-20-43-6F-6E-66-65-72-65-6E-63-65-00-00-09-50-75-62-6C-69-73-68-65-64-41-74-00-00-F0-70-AA-11-01-00-00-03-5F-6D-65-74-61-00-81-00-00-00-08-49-73-56-69-73-69-62-6C-65-00-01-09-4D-6F-64-69-66-69-65-64-41-74-00-18-DB-F4-3B-49-01-00-00-02-4D-6F-64-69-66-69-65-64-42-79-00-09-00-00-00-64-61-6E-6E-69-2E-73-2E-00-04-43-6F-6E-74-61-69-6E-65-64-54-79-70-65-73-00-33-00-00-00-02-30-00-09-00-00-00-65-78-65-67-65-73-69-73-00-02-31-00-09-00-00-00-73-69-6E-67-73-6F-6E-67-00-02-32-00-07-00-00-00-73-70-65-65-63-68-00-00-00-02-43-6F-76-65-72-00-67-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-61-6C-62-75-6D-2F-39-30-30-37-33-2F-61-6C-62-75-6D-5F-39-30-30-37-33-5F-63-6F-76-65-72-2E-6A-70-65-67-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-33-39-36-38-39-31-35-38-34-00-04-4C-61-6E-67-75-61-67-65-73-00-41-00-00-00-02-30-00-03-00-00-00-64-65-00-02-31-00-03-00-00-00-65-6E-00-02-32-00-03-00-00-00-65-73-00-02-33-00-03-00-00-00-66-72-00-02-34-00-03-00-00-00-6E-62-00-02-35-00-03-00-00-00-6E-6C-00-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-02-54-69-74-6C-65-00-12-00-00-00-50-C3-A5-73-6B-65-73-74-65-76-6E-65-20-32-30-30-37-00-04-43-68-69-6C-64-72-65-6E-00-05-00-00-00-00-02-54-79-70-65-00-06-00-00-00-61-6C-62-75-6D-00-00-00-0A-43-6F-76-65-72-55-72-6C-00-0A-41-76-61-69-6C-61-62-6C-65-4C-61-6E-67-75-61-67-65-73-00-02-4C-61-6E-67-75-61-67-65-00-03-00-00-00-6E-62-00-0A-54-69-74-6C-65-00-04-4D-65-64-69-61-00-D4-00-00-00-03-30-00-CC-00-00-00-02-54-79-70-65-00-06-00-00-00-61-75-64-69-6F-00-04-46-69-6C-65-73-00-B0-00-00-00-03-30-00-A8-00-00-00-02-4D-69-6D-65-54-79-70-65-00-0B-00-00-00-61-75-64-69-6F-2F-6D-70-65-67-00-10-53-69-7A-65-00-2E-77-1E-00-10-44-75-72-61-74-69-6F-6E-00-7C-00-00-00-02-55-72-6C-00-69-00-00-00-68-74-74-70-73-3A-2F-2F-73-61-6d-70-6c-65-2e-6f-72-67-2F-66-69-6C-65-2F-70-72-6F-74-65-63-74-65-64-2F-74-72-61-63-6B-2F-34-33-36-39-33-2F-74-72-61-63-6B-5F-34-33-36-39-33-5F-6D-65-64-69-61-5F-6E-62-2E-6D-70-33-3F-6C-61-73-74-2D-63-68-61-6E-67-65-64-3D-31-34-31-34-30-35-30-31-38-30-00-00-00-00-00-02-54-79-70-65-00-06-00-00-00-74-72-61-63-6B-00-00-00-00-00
我真的不知道 Akavache 如何进行序列化以将对象存储在 SQL 文件中的细节......但它要么不在此处存储该对象,要么在发送之前对其进行一些处理它进入 JsonSerialization
在做一个最小的例子时,我回忆起我犯的错误:
在我调用序列化程序时,Akavache 还不知道 UnderscoreMappingResolver
。因此,它将文档序列化并保存为 { Type: "track" }
但 DocumentConverter
期望 属性 Type
在反序列化时为小写,就像反序列化时所做的那样JSON 我从服务器得到的字符串。
我 - 当时 - 通过在 DocumentConverter
中实现一个开关来修复它,以采用 属性 type
或 Type
。这意味着在 coe 中,我将 jObject["type"]
替换为 jObject["type"] ?? jObject["Type"]
。
今天,我宁愿覆盖 Akavache 的序列化设置:
@DanBeaulieu,我请你调试 JsonCreationConverter<T>
的实现。可能在您的实现中抛出了一个异常,或者它在没有发送您期望的对象实例的情况下退出。