Json.NET - 在类型未知时保留类型信息

时间:2013-09-05 08:03:30

标签: json serialization ravendb json.net

我想将Json发送到服务器,我们使用Newtonsoft的Json.NET 1 来实现。 json可能包含类型信息(“$ type”= ... )。此类型信息可能指向未知类型。所述对象通常包含在object类型的属性中。


我想做什么:

  • 将未知类型的部分转换为JObject
  • 以某种方式保留类型信息,因此我可以稍后将相同的 json发送回客户端,因为它已传递到服务器。

到目前为止我尝试了什么

  • 通过替换SerializationBinder上的JsonSerializer,我可以强制Json.NET反序列化包含在JObject中的json。这几乎我想要的东西,唉 $ type 属性丢失了。

  • 在活页夹中返回一个类型,该类型指向一个与自定义JsonConverter协调一致的对象,它会吞噬有问题的对象,这样在写入时它会忠实地重新创建json,因为它是遇到。但是,当你点击$ type信息时,将不再调用转换器,显然我们在json.NET代码的不同分支中

  • 可以处理序列化错误,尝试从阅读器中读取违规部分,然后可以手动创建JOBject并注释类型信息。

1)更具体 - 构建它包含在RavenDB.Abstractions中,但希望它们没有太多分歧。

0 个答案:

没有答案
相关问题