让我解释一下我的问题。 所以我有JSON:
{"num":20, "meta":[{"id":312, "identif":{"type":true,"status":false}}}]}
我目前正在抓取meta id字段:
var id = JsonConvert.DeserializeObject<typeObj>
(returnJSON(ApiUrl)).meta[0].id;
类参考:
class typeObj
{
public int num {get; set; }
public List<metatypes> meta {get; set;}
}
class metatypes
{
public int id {get; set;}
}
但问题并不在于此。我试图从meta获取indentif status元素。
我尝试过将列表放在元类型中,例如:
class metatypes
{
public int id {get; set;}
public List<idtypes> identif {get; set;}
}
class idtypes
{
public bool type {get; set;}
public bool status {get; set;}
}
用以下方式调用:
var id = JsonConvert.DeserializeObject<typeObj>
(returnJSON(ApiUrl)).meta[0].identif[0].status;
但是当我尝试这个时它会返回
&#39;无法将当前的JSON对象(例如{&#34; name&#34;:&#34; value&#34;})反序列化为类型System.Collections.Generic.List`1& #39;
环顾四周,无法直接解决我的问题。
答案 0 :(得分:1)
您所需的结构的json不正确:
鉴于课程:
class typeObj
{
public int num {get; set; }
public List<metatypes> meta {get; set;}
}
class metatypes
{
public int id {get; set;}
public List<idtypes> identif {get; set;}
}
class idtypes
{
public bool type {get; set;}
public bool status {get; set;}
}
您的json应该看起来像(标识必须是数组):( .NET Fiddle)
{"num":20, "meta":[{"id":312, "identif":[{"type":true,"status":false}]}]}
对于有问题的json,你的类应该是这样的:(.NET Fiddle)
class typeObj
{
public int num {get; set; }
public List<metatypes> meta {get; set;}
}
class metatypes
{
public int id {get; set;}
public idtypes identif {get; set;}
}
class idtypes
{
public bool type {get; set;}
public bool status {get; set;}
}