我在使用JSON.NET库对从Facebook返回的数据进行反序列化时遇到了一些麻烦.
从简单的墙贴文件返回的JSON看起来像:
{
"attachment":{"description":""},
"permalink":"http://www.facebook.com/permalink.php?story_fbid=123456789"
}
Run Code Online (Sandbox Code Playgroud)
为照片返回的JSON如下所示:
"attachment":{
"media":[
{
"href":"http://www.facebook.com/photo.php?fbid=12345",
"alt":"",
"type":"photo",
"src":"http://photos-b.ak.fbcdn.net/hphotos-ak-ash1/12345_s.jpg",
"photo":{"aid":"1234","pid":"1234","fbid":"1234","owner":"1234","index":"12","width":"720","height":"482"}}
],
Run Code Online (Sandbox Code Playgroud)
一切都很好,我没有问题.我现在遇到一个来自移动客户端的简单墙帖,其中包含以下JSON,现在反序列化失败,只有一个帖子:
"attachment":
{
"media":{},
"name":"",
"caption":"",
"description":"",
"properties":{},
"icon":"http://www.facebook.com/images/icons/mobile_app.gif",
"fb_object_type":""
},
"permalink":"http://www.facebook.com/1234"
Run Code Online (Sandbox Code Playgroud)
这是我反序列化的类:
public class FacebookAttachment
{
public string Name { get; set; }
public string Description { get; set; }
public string Href { get; set; }
public FacebookPostType Fb_Object_Type { get; set; }
public string Fb_Object_Id { get; set; }
[JsonConverter(typeof(FacebookMediaJsonConverter))]
public List<FacebookMedia> { get; set; }
public string Permalink { get; …Run Code Online (Sandbox Code Playgroud) 我已经调用了Api并使用RestSharp接收了此响应.我无法控制Json响应的结构.
{
"response": {
"result": {
"Leads": {
"row": [
{
"no": "1",
"FL": [
{
"val": "LEADID",
"content": "101"
},
{
"val": "Company",
"content": "Test 1"
}
]
},
{
"no": "2",
"FL": [
{
"val": "LEADID",
"content": "102"
},
{
"val": "Company",
"content": "Test 2"
}
]
}
]
}
},
"uri": "/crm/private/json/Leads/getRecords"
}
}
Run Code Online (Sandbox Code Playgroud)
我想在理想情况下从Json中提取一个Leads列表作为Dto,而不进行可怕的解析等.
所以例如我会创建一个Dto类:
public class LeadDto {
public string LeadId;
public string Company;
}
Run Code Online (Sandbox Code Playgroud)
这些潜在客户可以包含在列表或其他内容中.
我已经阅读了https://github.com/restsharp/RestSharp/wiki/Deserialization多年但没有到达任何地方.
任何人都能用实例指出我正确的方向吗?