1

如何使用 json.net 取消实现未定义和嵌套的 Hashtable结构?例如:@"{"a" : {"b" : 1}}"

Hashtable data = JsonConvert.DeserializeObject<Hashtable>(json_str)

在 data["a"] 处返回Newtonsoft.Json.Linq.JObject ,而不是Hashtable

4

1 回答 1

0

如果事先不知道 JSON 的结构,并且 JSON 不包含任何类型元数据来帮助 Json.Net 解决问题,那么 Json.Net 就别无选择,只能使用 JToken(JObject、JProperty、JArray、JValue等)将事物反序列化为。这就是它的设计方式。

如果您更喜欢使用 Hashtables,则应该可以在反序列化后将 JToken 对象图转换为嵌套的 Hashtable 结构,但我不确定您这样做会获得多少收益。您最好只学习如何直接从 JToken 中读取数据。(无论如何,您都必须这样做才能进行转换。)

于 2013-04-08T15:55:00.417 回答