JsonConvert.DeserializeObject在我的.NET Core Web应用程序中不起作用

当前,我正在使用2.2版开发.NET Core应用程序。我从无法更改的Web API收到XML响应。我看起来像这样:

<?xml version="1.0" encoding="UTF-8"?><GetInformation>
<d1>PL11VTMICE</d1>
<d2>PL-BL02912</d2>
<d3>BL</d3>
<d4>0</d4>
<d5>MTR</d5>
<d6>405</d6>
<d7/>
<d8/>
<d9/>
<d10>2019-10-15 13:29:07.000</d10>

我有一个看起来像这样的模型类:

public class Data
{
    [Required]
    public string d1 { get; set; }
    public string d2 { get; set; }
    public string d3 { get; set; }
    public string d4 { get; set; }
    public string d5 { get; set; }
    public string d6 { get; set; }
    public string d7 { get; set; }
    public string d8 { get; set; }
    public string d9 { get; set; }
    public string d10 { get; set; }
}
public class Informations
{
    public List<Data> GetInformation { get; set; }
}

从XML到JSON的转换与此配合良好:

XmlDocument doc = new XmlDocument();
var res = await client.Getasync("some_address");
            if (res.IsSuccessStatusCode)
            {
                var result = res.Content.ReadAsStringAsync().Result;
                doc.LoadXml(result);

                string jsontest = JsonConvert.SerializeXmlNode(doc);
            }

当我在运行时查看“ jsontest”变量时,它看起来像这样:

JsonConvert.DeserializeObject在我的.NET Core Web应用程序中不起作用

  

当我尝试将其反序列化为对象时:

Informations bob = JsonConvert.DeserializeObject<Informations>(jsontest);

我收到以下错误:

  
      
  • ex {Newtonsoft.Json.JsonSerializationException:无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型'System.Collections.Generic.List`1 [xxx.xxx.Data]',因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。   要解决此错误,可以将JSON更改为JSON数组(例如[1,3]),也可以更改反序列化类型,使其成为普通的.NET类型(例如,不像整数这样的原始类型,也不像这样的集合类型数组或列表),可以从JSON对象反序列化。还可以将JsonObjectAttribute添加到类型中,以强制其从JSON对象反序列化。
  •   

我已经尝试了许多来自网络的解决方案,例如与JsonProperty标记一起从此处JSON Property使用,但不幸的是没有任何区别。 希望你能帮助我。

谢谢。

Ywenbo19901119 回答:JsonConvert.DeserializeObject在我的.NET Core Web应用程序中不起作用

问题在于GetInformation不是JSON中的列表;它是单个对象。

要解决此问题,请在您的Informations类中更改此行:

public List<Data> GetInformation { get; set; }

对此:

public Data GetInformation { get; set; }

提琴:https://dotnetfiddle.net/wUPNfq

本文链接:https://www.f2er.com/3157723.html

大家都在问