如何解析JSON文件以创建特定类的列表?

问题描述:

我从Stackoverflow这篇文章中得到了这个JSON file。我对JSON很新,在尝试解析JSON文件时遇到了重复的错误。 我想这使用JsonConvert如何解析JSON文件以创建特定类的列表?

我创建了一个类来存储数据,如下所示

public Class LocationInformation 
{ 
    string Country {get; set;} 
    List<string> Cities {get; set;} 
} 

我得到很多的错误,当我尝试从位置JSON文件中获取数据。当我厌倦了其他帖子中的例子时,我发现JSON文件的格式不同于指定存储数据的方式。

+0

使用Json.net(HTTP:// WWW。 newtonsoft.com/json) – zaitsman

+0

我也使用过,但我不知道如何做到这一点。请参阅JSON文件,它没有任何说明符。 – Rekha

+0

这json是完全有效的。显示你用来解析它的代码 – Pikoh

你的数据是Dictionary<string,List<string>>所以反序列化这样的:

var dict = JsonConvert.DeserializeObject<Dictionary<string,List<string>>>(json); 

活生生的例子:http://rextester.com/UZGC57402

+0

非常感谢,我会看看并做出相应回应。 – Rekha

问题是您的模型与JSON不匹配。

这样做:

public List<LocationInformation> ParseMyJson() 
{ 
    var file = ... // load file here; 

    var data = JsonConvert.DeserializeObject<Dictionary<string, List<string>>(file); 

    return data.Select(x => new LocationInformation { Country = x.Key, Cities = x.Value }).ToList(); // you DON'T have to return a list 
}