C# C语言中的Json反序列化

C# C语言中的Json反序列化,c#,json,json.net,C#,Json,Json.net,如何将JsonConvert.DeserializeObject与下面的Json一起使用 [{ "attributes" : { "type" : "User", "url" : "/xx/xx/xx" }, "Id" : "1", "Name" : "abc" },{ "attributes" : { "type" : "User", "url" : "/xx/xx/xx" }, "Id" : "2", "Name" : "abc

如何将JsonConvert.DeserializeObject与下面的Json一起使用

[{
  "attributes" : {
    "type" : "User",
    "url" : "/xx/xx/xx"
  },
  "Id" : "1",
  "Name" : "abc"
},{
  "attributes" : {
    "type" : "User",
    "url" : "/xx/xx/xx"
  },
  "Id" : "2",
  "Name" : "abc"
},{
  "attributes" : {
    "type" : "User",
    "url" : "/xx/xx/xx"
  },
  "Id" : "3",
  "Name" : "abc"
}]
这些是我的班级

public class Attributes
{
    public string type { get; set; }
    public string url { get; set; }
}

public class RootObject
{
    public Attributes attributes { get; set; }
    public string Id { get; set; }
    public string Name { get; set; }
}
我试过了

var c = JsonConvert.DeserializeObject <RootObject>(jsonText);

Json实际上表示一个根对象实例数组。试试这个:

var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
或者可能

var c = JsonConvert.DeserializeObject<List<RootObject>>(jsonText);
甚至

var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);

Json实际上表示一个根对象实例数组。试试这个:

var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
或者可能

var c = JsonConvert.DeserializeObject<List<RootObject>>(jsonText);
甚至

var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);

您的JSON实际上是一个数组,因此请尝试将其反序列化为RootObject[]:


您的JSON实际上是一个数组,因此请尝试将其反序列化为RootObject[]:

如果json是数组或集合,请尝试使用数组类型对其进行反序列化:

var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
或任何其他类型的采集,对于样本:

var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);
var c = JsonConvert.DeserializeObject<ICollection<RootObject>>(jsonText);
如果json是数组或集合,请尝试使用数组类型对其进行反序列化:

var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
或任何其他类型的采集,对于样本:

var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);
var c = JsonConvert.DeserializeObject<ICollection<RootObject>>(jsonText);

尝试告诉反序列化程序您希望反序列化到什么,在本例中为RootObject。 根据JsonConvert.DeserializeObject方法,String返回一个.net对象

而JsonConvert.DeserializeObject方法字符串返回指定的类型。 例如:

public class Attributes
{
    public string type { get; set; }
    public string url { get; set; }
}

public class RootObject
{
    public Attributes attributes { get; set; }
    public string Id { get; set; }
    public string Name { get; set; }
}

RootObject c = JsonConvert.DeserializeObject<RootObject>(jsonText);

尝试告诉反序列化程序您希望反序列化到什么,在本例中为RootObject。 根据JsonConvert.DeserializeObject方法,String返回一个.net对象

而JsonConvert.DeserializeObject方法字符串返回指定的类型。 例如:

public class Attributes
{
    public string type { get; set; }
    public string url { get; set; }
}

public class RootObject
{
    public Attributes attributes { get; set; }
    public string Id { get; set; }
    public string Name { get; set; }
}

RootObject c = JsonConvert.DeserializeObject<RootObject>(jsonText);

所以你试过了。。和请注意,JSON根对象是一个数组。剩余0个标志。。。这是100篇文章的副本。所以你试过了。。和请注意,JSON根对象是一个数组。剩余0个标志。。。这是100篇文章的副本。