C# 无法反序列化当前JSON对象(例如,{“名称”:“值”})

C# 无法反序列化当前JSON对象(例如,{“名称”:“值”}),c#,json,serialization,xamarin,xamarin.forms,C#,Json,Serialization,Xamarin,Xamarin.forms,请帮助我,我是xamarin.forms和C的新手,我尝试过stackoverflow中给出的每一个解决方案,但无法解决 using (var httpClient = new HttpClient()) { var response = httpClient.GetAsync(Url).Result; if (response.IsSuccessStatusCode) { var responseContent = response.Content;

请帮助我,我是xamarin.forms和C的新手,我尝试过stackoverflow中给出的每一个解决方案,但无法解决

 using (var httpClient = new HttpClient())
 {
   var response = httpClient.GetAsync(Url).Result;
   if (response.IsSuccessStatusCode)
   {
      var responseContent = response.Content;
      string contents = await responseContent.ReadAsStringAsync();
      List<abcModel> tm = JsonConvert.DeserializeObject<List<abcModel>>(contents);
      abcMaster = new ObservableCollection<SummaryModel>();
      var c = tm[0].SSum.Count();
   }
} 
错误:-

无法将当前JSON对象(例如{“名称”:“值”})反序列化为类型“System.Collections.Generic.List`1[abcModel]”,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。 若要修复此错误,请将JSON更改为JSON数组(例如[1,2,3]),或更改反序列化类型,使其成为可以从JSON对象反序列化的正常.NET类型(例如,不是integer之类的基元类型,也不是数组或列表之类的集合类型)。还可以将JsonObjectAttribute添加到类型中,以强制它从JSON对象反序列化


因为您显然只想反序列化json的嵌套部分,请按如下方式执行:

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

因为您显然只想反序列化json的嵌套部分,请按如下方式执行:

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

因为您显然只想反序列化json的嵌套部分,请按如下方式执行:

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

因为您显然只想反序列化json的嵌套部分,请按如下方式执行:

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

您缺少JSON中的
属性。可以反序列化为具有该属性的类:

public class MyType
{
    public List<abcModel> A { get; set; }
}

JsonConvert.DeserializeObject<MyType>(json);
公共类MyType
{
public List的答案很有效),下面是另一种选择:

JObject obj = JObject.Parse(json);

List<abcModel> model = obj["a"].ToObject<List<abcModel>>();
JObject obj=JObject.Parse(json);
列表模型=对象[“a”].ToObject();

请注意:通常C#类是
PascalCased

您缺少JSON中的
a
属性。您可以反序列化为具有该属性的类:

public class MyType
{
    public List<abcModel> A { get; set; }
}

JsonConvert.DeserializeObject<MyType>(json);
公共类MyType
{
public List的答案很有效),下面是另一种选择:

JObject obj = JObject.Parse(json);

List<abcModel> model = obj["a"].ToObject<List<abcModel>>();
JObject obj=JObject.Parse(json);
列表模型=对象[“a”].ToObject();

请注意:通常C#类是
PascalCased

您缺少JSON中的
a
属性。您可以反序列化为具有该属性的类:

public class MyType
{
    public List<abcModel> A { get; set; }
}

JsonConvert.DeserializeObject<MyType>(json);
公共类MyType
{
public List的答案很有效),下面是另一种选择:

JObject obj = JObject.Parse(json);

List<abcModel> model = obj["a"].ToObject<List<abcModel>>();
JObject obj=JObject.Parse(json);
列表模型=对象[“a”].ToObject();

请注意:通常C#类是
PascalCased

您缺少JSON中的
a
属性。您可以反序列化为具有该属性的类:

public class MyType
{
    public List<abcModel> A { get; set; }
}

JsonConvert.DeserializeObject<MyType>(json);
公共类MyType
{
public List的答案很有效),下面是另一种选择:

JObject obj = JObject.Parse(json);

List<abcModel> model = obj["a"].ToObject<List<abcModel>>();
JObject obj=JObject.Parse(json);
列表模型=对象[“a”].ToObject();

请注意:通常C#类是
PascalCased

如果您已经有了JSON字符串,您应该使用类似于生成器的方法来创建响应DTO。这将防止在集合与单个对象之间出现错误

public class SSum
{
    public string Name { get; set; }
}

public class A
{
    public List<SSum> SSum { get; set; }
}

public class RootObject
{
    public List<A> A { get; set; }
}
公共类SSum
{
公共字符串名称{get;set;}
}
公共A类
{
公共列表SSum{get;set;}
}
公共类根对象
{
公共列表A{get;set;}
}
现在,您可以反序列化整个对象:

tm = JsonConvert.DeserializeObject<RootObject>(contents);
tm=JsonConvert.DeserializeObject(内容);

如果您已经拥有JSON字符串,那么应该使用类似于生成器的生成器来创建响应DTO。这将防止在集合与单个对象之间出现错误

public class SSum
{
    public string Name { get; set; }
}

public class A
{
    public List<SSum> SSum { get; set; }
}

public class RootObject
{
    public List<A> A { get; set; }
}
公共类SSum
{
公共字符串名称{get;set;}
}
公共A类
{
公共列表SSum{get;set;}
}
公共类根对象
{
公共列表A{get;set;}
}
现在,您可以反序列化整个对象:

tm = JsonConvert.DeserializeObject<RootObject>(contents);
tm=JsonConvert.DeserializeObject(内容);

如果您已经拥有JSON字符串,那么应该使用类似于生成器的生成器来创建响应DTO。这将防止在集合与单个对象之间出现错误

public class SSum
{
    public string Name { get; set; }
}

public class A
{
    public List<SSum> SSum { get; set; }
}

public class RootObject
{
    public List<A> A { get; set; }
}
公共类SSum
{
公共字符串名称{get;set;}
}
公共A类
{
公共列表SSum{get;set;}
}
公共类根对象
{
公共列表A{get;set;}
}
现在,您可以反序列化整个对象:

tm = JsonConvert.DeserializeObject<RootObject>(contents);
tm=JsonConvert.DeserializeObject(内容);

如果您已经拥有JSON字符串,那么应该使用类似于生成器的生成器来创建响应DTO。这将防止在集合与单个对象之间出现错误

public class SSum
{
    public string Name { get; set; }
}

public class A
{
    public List<SSum> SSum { get; set; }
}

public class RootObject
{
    public List<A> A { get; set; }
}
公共类SSum
{
公共字符串名称{get;set;}
}
公共A类
{
公共列表SSum{get;set;}
}
公共类根对象
{
公共列表A{get;set;}
}
现在,您可以反序列化整个对象:

tm = JsonConvert.DeserializeObject<RootObject>(contents);
tm=JsonConvert.DeserializeObject(内容);


我正在尝试计算SSum部分中json中的总值get@AtulDhanuka:我不太确定您要的是什么--您要的是
tm.Sum(I=>I.SSum.Count)
?尝试在SSum部分中计算json中存在的总值get@AtulDhanuka:我不太确定您要的是什么--您要的是
tm.Sum(I=>I.SSum.Count)
?尝试在SSum部分中计算json中存在的总值get@AtulDhanuka:我不太确定您要的是什么--您要的是
tm.Sum(I=>I.SSum.Count)
?尝试在SSum部分中计算json中存在的总值get@AtulDhanuka:我不太确定您要的是什么--您要的是
tm.Sum(I=>I.SSum.Count)
?是tmi的总计数尝试计算SSum部分中json中存在的总值我如何才能弄清楚你在问什么…合计计数?
var sum=result[“a”].sum(x=>x.SSum.count);
?我尝试计算SSum部分中json中存在的总值我如何计算