【发布时间】:2015-08-30 23:57:03
【问题描述】:
我有一个如下所示的 JSON sn-p:
{"123":{"name":"test","info":"abc"}}
123 是一个 ID,可以根据每个请求进行更改。这超出了我的控制范围。
我想使用 JSON.NET 反序列化 JSON。我试过了:
User u = JsonConvert.DeserializeObject<User>(json);
但是,除非我像这样定义 JsonProperty 属性,否则这不起作用:
[JsonProperty("123")]
public string ID { get; set; }
但我当然不能真正做到这一点,因为 ID 123 会在每次请求时更改。
如何使用 JSON.NET 读取 ID 属性并将其应用于 ID 类?
【问题讨论】:
-
它适用于
KeyValuePair<string, object>。您可以尝试在临时的object缓冲区中对其进行反序列化,然后将其映射到您的User实例。 -
不是格式错误;只是笨拙地形成。基本上它是
的 KVP,其中用户具有属性 'name' 和 'info' -
我想,在你的类结构中必须定义第一类 RootObject 。在 Rootobject 类中,您必须将所有 json 属性声明为 get set 方法。
-
正如所指出的,
KeyValuePair<string, object>不起作用。根据@YuvalItzchakov 的回答,使用Dictionary可以解决问题。