将列表转换为通用列表

时间:2015-01-03 06:54:36

标签: c# asp.net generics windows-phone-8 json.net

我正在尝试将json数据转换为通用列表

string result = e.Result;
JObject o = JObject.Parse(result);
var results = o["Data"];
List<Data> _lst = results.ToList();

但列表转换显示错误

 'System.Collections.Generic.IEnumerable<Newtonsoft.Json.Linq.JToken>' to 'System.Collections.Generic.List<PhoneApp2.Employee.CandidateManager.Data>'. An explicit conversion exists (are you missing a cast?)  

1 个答案:

答案 0 :(得分:2)

您应该将JToken转换为Data

Data CreateData(JToken token)
{
    // some code for creating Data from token.
}

然后你可以使用它:

var _lst = results.Select(CreateData).ToList();

修改

例如,您的Data类看起来像这样:

class Data
{
    public string Name { get; set; }

    public int SomeValue {get; set; }
}

token拥有SomeValueName个密钥。

您的CreateData方法将

Data CreateData(JToken token)
{
    return new Data
    {
        Name = token.Value<string>("Name"),
        SomeValue = token.Value<int>("SomeValue")
    }
}