首页 > 解决方案 > WPF,C#获取响应xml到对象

问题描述

我可以 Json DeserializeObject,使用'Newtonsoft.json'

using (HttpClient client = new HttpClient())
{
    var response = await client.GetAsync(url); 
    string json = await response.Content.ReadAsStringAsync();

    /// Add Nuget 'Newtonsoft.json'
    /// Json DeserializeObject
    try
    {
        weathers = JsonConvert.DeserializeObject<WeatherModel>(json);
        weatherList.Add(weathers);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message + ": error");
    }
}

但我无法将 Xml 数据响应到 DeserializeObject

我试着

using (HttpClient client = new HttpClient())
{
    var response = await client.GetAsync(url); 
    string json = await response.Content.ReadAsStringAsync();
    StreamReader xmlReader = new StreamReader(json); // Can't...  Error

    try
    {
        weathers = ???; // How to DeserializeObject ??
        weatherList.Add(weathers);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message + ": error");
    }

}
return weathers;

有没有我可以使用的 Nuget,或者有没有办法将响应的 xml 用于 DeserializeObject?

标签: xmlwpf

解决方案


使用XmlSerializer.

string xmlData = await response.Content.ReadAsStringAsync();
using (TextReader reader = new StringReader(xmlData))
{
    XmlSerializer serializer = new XmlSerializer(typeof(WeatherModel));
    try
    {
        weathers = (WeatherModel)serializer.Deserialize(reader); 
        weatherList.Add(weathers);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message + ": error");
    }
}

推荐阅读