反序列化对象C#

反序列化对象C#,c#,arrays,json,json.net,C#,Arrays,Json,Json.net,我有以下json: { "coord":{"lon":-88.92,"lat":44.46}, "weather":[{"id":600,"main":"Snow","description":"light snow","icon":"13d"}], "main":{"temp":271.72,"pressure":1009,"humidity":73,"temp_min":269.15,"temp_max":273.15}, "name":"XXXXX", }

我有以下json:

{
    "coord":{"lon":-88.92,"lat":44.46},
    "weather":[{"id":600,"main":"Snow","description":"light snow","icon":"13d"}],
    "main":{"temp":271.72,"pressure":1009,"humidity":73,"temp_min":269.15,"temp_max":273.15},
    "name":"XXXXX",
}
我正试图用C#反序列化这些类:

public class weatherClass
{

    [JsonProperty("name")]
    public string Name { get; set;}

    [JsonProperty("main")]
    public Info Main { get; set;}

    [JsonProperty("weather")]
    public List<InfoWeather> Weather { get; set; }
}

public class Info{
    public string temp { get; set;}
    public string pressure { get; set;}
}

public class InfoWeather {
    public string description { get; set;}
    public string main { get; set;}
}
如果我使用weatherlass.Weather.description

/*更改类定义以使用正确的大小写名称,然后使用newtonsoft提供的驼峰大小写转换器*/
公务舱
{
公共字符串名称{get;set;}
公共信息主{get;set;}
公共天气列表{get;set;}
}
公共类信息
{
公共字符串Temp{get;set;}
公用管柱压力{get;set;}
}
公共课资讯天气
{
公共字符串说明{get;set;}
公共字符串Main{get;set;}
}
var jsonSerializerSettings=new jsonSerializerSettings{ContractResolver=new CamelCasePropertyNamesContractResolver()};
var weatherClass=Newtonsoft.Json.JsonConvert.DeserializeObject(Json,jsonSerializerSettings);

您需要提供一个可以显示您的问题的列表。或者从另一个角度来看,我应该能够将您的代码复制并粘贴到VS或LINQPad中并运行它如果我使用
weatherlass.Weather.description
。它返回错误!请您编辑您的问题,以包括额外的文本和图像-不要在外部链接到图像,而是嵌入到问题中-并请输入用于反序列化的代码?你需要在你的问题中制作一个复制粘贴的例子。谢谢@Vincent,但我仍然有同样的问题:那么这不是一个序列化问题,因为我在这里运行它,它工作得很好。你的天气对象是一个列表。请尝试weatherClass.Weather[0]。描述完美!!谢谢这是我需要的:)
weatherResult.Text = string.Format("The city is: {0} and the description is: {1}", weatherlass.Name, weatherlass.Weather);
/*Change your class definitions to use proper case names then use the camel case converter provide by newtonsoft*/

public class WeatherClass
{
    public string Name { get; set; }
    public Info Main { get; set; }
    public List<InfoWeather> Weather { get; set; }
}

public class Info
{
    public string Temp { get; set; }
    public string Pressure { get; set; }
}

public class InfoWeather
{
    public string Description { get; set; }
    public string Main { get; set; }
}

var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var weatherClass = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherClass>(json, jsonSerializerSettings);