有人可以建议我如何阅读以下JSON数据吗?
[
{
"ref": 1,
"name": "name1",
"year": 2016
},
{
"ref": 2,
"name": "name2",
"year": 2016
}
]
我试过用JObject.parse阅读,但似乎失败了,因为父母没有名字?
我无法控制所读取数据的格式,因为它来自第三方来源。
答案 0 :(得分:1)
class Entity
{
[JsonProperty("ref")]
public int @ref { get; set; }
public string name { get; set; }
public int year { get; set; }
}
var result = JsonConvert.DeserializeObject<List<Entity>>(jsonString);
ref
是c#中的保留关键字,因此您需要使用JsonProperty属性绑定到具有不同名称的属性。
答案 1 :(得分:1)
您可以使用JSON.NET中提供的DeserializeObject()
方法返回dynamic
个对象的集合:
var json = @"[{""ref"": 1, ""name"": ""name1"",""year"": 2016},{""ref"": 2,""name"": ""name"",""year"": 2016}]";
// Build a list to store your objects
var references = JsonConvert.DeserializeObject<dynamic[]>(json);
foreach(dynamic reference in references)
{
// Each dynamic object in here can be referenced as expected
// (e.g. reference.name, reference.year and reference["ref"]
Console.WriteLine("ref: {0}, name: {1}, year: {2}",reference["ref"], reference.name, reference.year);
}
下面可以看到example of this can be seen here和示例输出;
ref: 1, name: name1, year: 2016
ref: 2, name: name, year: 2016
如果您已经有一个类来表示关联的类型,那么在序列化时可以直接绑定到它:
JsonConvert.DeserializeObject<YourClassName[]>(json);