C# 从JSON数据构建对象?
因此,当我从服务器获取JSON数据时,我想构建一个City类C# 从JSON数据构建对象?,c#,json,class,object,asynchronous,C#,Json,Class,Object,Asynchronous,因此,当我从服务器获取JSON数据时,我想构建一个City类 public class City { public string id { get; set; } public string country { get; set; } public string region { get; set; } public string mainCity { get; set; } public string latitude { get; set; }
public class City
{
public string id { get; set; }
public string country { get; set; }
public string region { get; set; }
public string mainCity { get; set; }
public string latitude { get; set; }
public string longitude { get; set; }
public string comment { get; set; }
public bool wasThereAnError { get; set; }
public class CityResponse
{
public string status { get; set; }
public string message { get; set; }
public List<City> result { get; set; }
}
public override string ToString()
{
return "\n\nID: \t\t" + id + "\nCountry: \t" + country + "\nRegion: \t\t" + region + "\nCity: \t\t" + mainCity + "\nLatitude: \t" + latitude + "\nLongitude: \t" + longitude + "\nComment: \t" + comment;
}
}
我想让City类填充相应的数据。
这是我拥有的获取数据的web检索类
async private Task<City> GetCityInformation(string url)
{
var client = new HttpClient();
var response = await client.GetAsync(new Uri(url));
string result = await response.Content.ReadAsStringAsync();
//var cityRootaaa = JsonConvert.DeserializeObject<City.CityResponse>(result);
var cityRoot = JsonConvert.DeserializeObject<City>(result);
return cityRoot;
}
}
异步私有任务GetCityInformation(字符串url)
{
var client=新的HttpClient();
var response=await client.GetAsync(新Uri(url));
字符串结果=wait response.Content.ReadAsStringAsync();
//var cityrotaaa=JsonConvert.DeserializeObject(结果);
var cityRoot=JsonConvert.DeserializeObject(结果);
返回城市轨道;
}
}
但是,当我调试时,我可以看到没有保存任何内容。
最初,我在City的id上方有另一个状态字段,当我调试时,状态字段中设置了“OK”,但没有其他数据。
我不知道该怎么办?
谢谢你的帮助 您的json字符串包含具有两个属性的对象,status和city对象,因此您反序列化类似字符串的类型应为:
public class CityResponse
{
public string status { get; set; }
public City result { get; set; }
}
现在可以像这样反序列化它
var cityResponse = JsonConvert.DeserializeObject<CityResponse>(result);
return cityResponse.City;
var cityResponse = JsonConvert.DeserializeObject<CityResponse>(result);
return cityResponse.City;
var cityResponseType = new { status = string.Empty, result = new City() };
var cityResponse = JsonConvert.DeserializeAnonymousType(result, cityResponseType);
return cityResponse.result;