![](/img/trans.png)
[英]Deserializing JSON object array to List<MyOwnClass>
[英]Deserializing JSON object to array or list
我仍然不确定要问什么,所以很抱歉这是不正确的。 我发现的其他问题与人们已经在使用JSON接收对象数组有关。
当我只将JSON字符串作为数组返回时,我的JSON字符串从第三方作为对象返回,该数组过去很容易转换为对象。
var success = JsonConvert.DeserializeObject<RootObjectClass>(result); gives me a `Cannot deserialize the current JSON object (e.g. {\"name\":\"value\"}) into type 'System.Collections.Generic.List`
我应该将其转换为数组吗?如果这样,将如何转换为对象,因为这些对象分别与属性“ contact_id”值相同?
否则,有人可以为我指出最佳实践的正确方向,即如何从此JSON中获取联系人列表。
JSON结构如下所示。
{
"status": true,
"error_code": "",
"error_message": "",
"data": {
"693": { // Contact obj, always the same as contact_id
"contact_id": "693",
// removed lots of properties for brevity
"real_name": "Mike Hunt",
"telephone": "01280845867",
"email": "mhunt@test.com"
},
"767": {
"contact_id": "767",
"real_name": "Peter File",
"telephone": "02580845866",
"email": "pfile@test.com"
}
}
}
类结构
[Serializable()]
[DataContract]
public class RootObjectClass
{
[DataMember()]
public bool status { get; set; }
[DataMember()]
public string error_code { get; set; }
[DataMember()]
public string error_message { get; set; }
[DataMember()]
public DataClass data { get; set; }
}
[Serializable()]
[DataContract]
public class DataClass
{
[DataMember]
public Contact contact { get; set; }
}
您可以将data
属性反序列化为字典 :
[Serializable()]
[DataContract]
public class RootObjectClass
{
[DataMember()]
public bool status { get; set; }
[DataMember()]
public string error_code { get; set; }
[DataMember()]
public string error_message { get; set; }
[DataMember()]
public Dictionary<string,Contact> data { get; set; }
}
然后您可以选择如下联系人:
var contacts = rootObject.data.Values.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.