将IEnumerable <object>结果转换为List <account>

时间:2015-05-11 04:47:32

标签: c# linq

我有一个salesforce rest服务,它以IEnumerable格式返回结果。以下是样本结果。

[{
  "attributes": {
    "type": "Account",
    "url": "/services/data/v28.0/sobjects/Account/001i0000WK5xYAAT"
  },
  "RecordType": {
    "attributes": {
      "type": "RecordType",
      "url": "/services/data/v28.0/sobjects/RecordType/012i00000x7FwAAI"
    },
    "Name": "Health Care Practitioners"
  },
  "Name": "JOSEPH SANDERS",
  "Status_ims__c": "Verified",
},
{
  "attributes": {
    "type": "Account",
    "url": "/services/data/v28.0/sobjects/Account/001i000000WK5xYAAT"
  },
  "RecordType": {
    "attributes": {
      "type": "RecordType",
      "url": "/services/data/v28.0/sobjects/RecordType/012i0000000x7FwAAI"
    },
    "Name": "Health Care Practitioners"
  },
  "Name": "DONALD GRABER",
  "Status_ims__c": "Verified",
}]


public class Account
    {

        public string Name { get{ return GetOption ("Name");} }
        public string Status_ims__c { get{ return GetOption ("Status_ims__c");}}
        public Attributes attributes {get;}
        public RecordType recordType {get;}

    }

    public class Attributes
    {
        public string type { get; set; }
        public string url { get; set; }
    }

    public class Attributes2
    {
        public string type { get; set; }
        public string url { get; set; }
    }

    public class RecordType
    {
        public Attributes2 attributes { get; set; }
        public string Name { get; set; }
    }

以上是我对帐户对象的结构。如何将结果转换为List并映射到Account对象上的每个属性。

3 个答案:

答案 0 :(得分:0)

例如,使用json.net - &gt;

var account = JsonConvert.DeserializeObject<List<Account>>(stringData);

如果对象和数据之间存在一些差异,您可以使用JsonProperty注释

因此,您可以在类模型中使用更多可读属性,例如

[JsonProperty("Status_ims__c ")]
public string Status

答案 1 :(得分:0)

如果您使用Newtonsoft.Json,则可以使用Newtonsoft.Json.JsonConvert.DeserializeObject方法。

还要确保您的媒体资源在Account班级中设置了。

答案 2 :(得分:0)

你可以简单地使用它:

var accounts = JsonConvert.DeserializeObject<List<Account>>("your json string...");