我想将 Json 发送到服务器,我们使用 Newtonsoft 的Json.NET 1来做到这一点。json 可能包含类型信息("$type" = ...)。此类型信息可能指向未知类型。所述对象通常包含在对象类型的属性中。
我想做的事:
- 将未知类型的部分转换为JObject
- 以某种方式保留类型信息,因此我可以稍后将相同的json 发送回客户端,因为它已传递给服务器。
到目前为止我尝试过的
通过替换
SerializationBinder
onJsonSerializer
,我可以强制 Json.NET 反序列化包含在JObject
. 这几乎是我想要的,可惜$type属性丢失了。在活页夹中返回一个指向一个对象的类型,该对象将与一个习惯协调工作,该习惯
JsonConverter
会吞噬有问题的对象,以便在写入时它会忠实地重新创建遇到的 json。但是,当您点击 $type 信息时,将不再调用任何转换器,显然我们在 json.NET 代码的不同分支中可以处理序列化错误,尝试从阅读器读取违规部分,然后可以手动创建 JOBject 并注释类型信息。
1) 更具体 - RavenDB.Abstractions 中包含的它的构建,但希望它们没有太多分歧。