如何反序列化此Json字符串上的"Items"类部分:
{
"Buddies": {
"count": 1,
"items": [
{
"id": "5099207ee4b0cfbb6a2bd4ec",
"firstName": "Foo",
"lastName": "Bar",
"image": {
"url": "",
"sizes": [
60,
120,
180,
240,
360
],
"name": "myphoto.png"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我拥有的原始课程是:
public class Buddy
{
public IEnumerable<Item> Items { get; set; }
public class Item {
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
但是json的上半部分对我来说是无用的,我想要使用这个类:
public class Buddy
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是一种使用JSONPath的方法,假设您的JSON位于名为的变量中json:
var buddies = JObject.Parse(json).SelectToken("$.Buddies.items").ToObject<Buddy[]>();
Run Code Online (Sandbox Code Playgroud)
我不知道开箱即用的解决方案(如果有),但是是什么阻止您编写类似于下面所示的几行代码来构建新集合:
var obj = JsonConvert.DeserializeObject<dynamic>(jsonstring);
var items = new List<Buddy>();
foreach (var x in obj.Buddies.items)
{
items.Add(new Buddy
{
Id = x.id,
FirstName = x.firstName,
LastName = x.lastName
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9128 次 |
| 最近记录: |