[英]Json Deserialize in C#
How to use JsonConvert.DeserializeObject with below Json 如何在下面的Json中使用JsonConvert.DeserializeObject
[{
"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"
}]
These are my class 这些是我班
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; }
}
I have tried with 我尝试过
var c = JsonConvert.DeserializeObject <RootObject>(jsonText);
Your Json actually represents an array of RootObject
instances. 您的Json实际上代表了一个
RootObject
实例数组。 Try this: 尝试这个:
var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
Or possibly 或者可能
var c = JsonConvert.DeserializeObject<List<RootObject>>(jsonText);
Or even 甚至
var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);
您的JSON实际上是一个数组,因此请尝试将其反序列化为RootObject[]
:
var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
You json
is a array (or collection), try to deserialize it using the array type: 您
json
是一个数组(或集合),请尝试使用数组类型反序列化它:
var c = JsonConvert.DeserializeObject<RootObject[]>(jsonText);
Or any other type of collection, for sample: 或任何其他类型的集合,例如:
var c = JsonConvert.DeserializeObject<IEnumerable<RootObject>>(jsonText);
var c = JsonConvert.DeserializeObject<ICollection<RootObject>>(jsonText);
Try telling the deserializer what you're expecting to deserialize to, in this case RootObject. 尝试告诉反序列化器您希望反序列化的内容,在本例中为RootObject。 According to the documentation of the method you're currently calling
JsonConvert.DeserializeObject Method (String)
returns a .net object. 根据该方法的文档,您当前正在调用
JsonConvert.DeserializeObject Method (String)
返回一个.net对象。
While this method JsonConvert.DeserializeObject<T> Method (String)
returns the specified type. 虽然此方法
JsonConvert.DeserializeObject<T> Method (String)
返回指定的类型。 for example: 例如:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.