【发布时间】:2016-10-06 04:20:00
【问题描述】:
我正在尝试反序列化来自 facebook/me 的以下 JSON 响应。
{
"id": "53234...",
"first_name": "Nik",
"last_name": "Westfield",
"email": "nik@youremail.com",
"picture": {
"data": {
"height": 720,
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p720x720/3221.....",
"width": 720
}
}
}
如何在不创建另一个 DTO 的情况下获取图片/数据属性?
var me = await Task.Run(() => JsonConvert.DeserializeObject<FacebookMeDto>(json)).ConfigureAwait(false);
DTO:
public class FacebookMeDto
{
[JsonProperty("id")]
public string Id { get; set; }
...
[JsonProperty("picture")]
public FacebookPictureDto PictureDto { get; set; }
}
public class FacebookPictureDto
{
[JsonProperty("height")]
public int Height { get; set; }
...
[JsonProperty("url")]
public string Url { get; set; }
}
不幸的是,它上面的代码不起作用,因为我缺少额外的 DTO 来表示图片下的 Data 对象。但理想情况下,我不希望另一个 DTO 只用于 Data 并且让 JSON 反序列化知道它可以在 picture.data 下找到图片 DTO 数据!
这可能吗?如果可以,请问如何?
非常感谢!
亲切的问候,尼克
【问题讨论】:
标签: .net json json.net deserialization