反序列化没有名称的对象的JSON数组时,应用崩溃

时间:2018-11-28 13:15:50

标签: c# json xamarin.forms

我目前正在研究ListView,它显示了我们系统的几个过程。不幸的是,系统仅以以下格式提供json:

[
    {
        "f1": "w1",
        "date": "2018.11.09"        
    },
    {
        "f1": "w2",
        "date": "2018.11.09"
    }
]

如果启动反序列化,我的应用程序将崩溃,我认为原因是该对象没有“描述”。但是我该如何解决呢?

这是我下载和反序列化json的代码:

using (WebClient client = new WebClient())
{
    client.Encoding = Encoding.UTF8;                       
    json = client.DownloadString("http://x.x.x.x/test.json");
}
return JsonConvert.DeserializeObject<Query>(json);

查询:

public class Query
{
    public List<Process> Processes { get; set; }
}

过程:

public class Process
{
    [JsonProperty("f1")]
    public string f1 { get; set; }
    [JsonProperty("date")]
    public string date { get; set; }
}

1 个答案:

答案 0 :(得分:2)

这是因为JSON尝试将您的值反序列化为指定的'Query'对象:

{
    "processes" : []
}

当结果为列表时,将JsonConvert.DeserializeObject<Query>更改为JsonConvert.DeserializeObject<List<Process>>,看看是否有帮助:)。