【发布时间】:2012-04-17 22:22:22
【问题描述】:
首先,我所以很抱歉提出另一个关于 JSON 反序列化的问题。但是,我还没有看到这个问题的答案。
我想将 JSON 反序列化为 T,其中 T 递归定义为:
Dictionary<string, T>T[]string- 原始类型
-
(object)T(盒装)
我知道那里的许多 JSON 库都允许指定反序列化类型,但是根据我的经验,一些自定义类型(JObject、JsonObject 等等)会出现在对象图中的某处(即返回类型似乎只适用于一定的深度)。这似乎很简单,因为类型与 JavaScript 的映射几乎是一对一的。
编辑
理想情况下,我希望 JSON 是“干净的”,即没有特殊字段(“__type”等)来帮助反序列化。它应该是来自 JavaScript 的直接映射:JObject -> IDictionary<string, T>、JArray -> T[] 等等。
与此同时,我正在使用 FParsec 解析器和手动序列化器。它工作得很好,但我认为可能已经有一些东西了。
【问题讨论】:
-
你试过 Newtonsoft.JSON 吗? (james.newtonking.com/pages/json-net.aspx) 这是 ravenDB 使用的,我在反序列化过程中没有遇到问题。
-
是的,这就是我目前使用的,
JObject总是出现在深度嵌套的对象图中。 -
能否提供一些示例代码和输入数据?
标签: c# json deserialization