Windows phone 8 json使用列表转换json<&燃气轮机;元素WP8

Windows phone 8 json使用列表转换json<&燃气轮机;元素WP8,windows-phone-8,Windows Phone 8,我有一个来自webservice的json,其中有一个列表元素。 但是当我尝试使用Newtonsoft.Json反序列化它时 Response resp = JsonConvert.DeserializeObject<Response>(responseStr); Response resp=JsonConvert.DeserializeObject(responsest); 然后,当我使用resp.ProjectList获取列表时,它抛出一个空指针异常。 因此,列表没有被反序列

我有一个来自webservice的json,其中有一个列表元素。 但是当我尝试使用Newtonsoft.Json反序列化它时

Response resp = JsonConvert.DeserializeObject<Response>(responseStr);
Response resp=JsonConvert.DeserializeObject(responsest);
然后,当我使用resp.ProjectList获取列表时,它抛出一个空指针异常。 因此,
列表
没有被反序列化。 你知道我错过了什么吗

答复的形式如下:

public Response 
{
    public string msg;
    public List<Project> ProjectList{get; set;}
}

[DataContract]
public class Project
{
    [DataMember]
    public string ID {get; set;}
}
公众响应
{
公共字符串msg;
公共列表项目列表{get;set;}
}
[数据合同]
公共类项目
{
[数据成员]
公共字符串ID{get;set;}
}

只需删除
[DataContract]
[DataMember]
属性,它们无法与Json.NET很好地混合

或者您可以“手动”进行反序列化


以下是json:{“Msg”:“Success”,“ProjectList”:[{“ID”:“/Date(1400120100000-0700)/”},{“ID”:“/Date(1404260520000-0700)/“}]}我从另一个团队收到了数据合同,因此我有一个dll,无法对其进行更改。使用手动解析确实有效,但是,当我尝试在VisualStudio13上使用相同版本的newtonsoft运行相同的代码时,它成功了!你知道这是因为IDE版本(因为json convertor lib的code nd版本是相同的)还是我可能缺少什么?
var j = JToken.Parse("{ \"Msg\": \"Success\", \"ProjectList\": [ { \"ID\": \"/Date(1400120100000-0700)/\" }, { \"ID\": \"/Date(1404260520000-0700)/\" } ] } ");
var resp = new Response
{
    msg = j.SelectToken("Msg").ToString(),
    ProjectList = ((JArray) j.SelectToken("ProjectList")).Select(l => new Project {ID = l.SelectToken("ID").ToString()}).ToList()
};