我有很多麻煩試圖找出如何反序製作我的迴應調用Facebook的API API。我的C#代碼如下所示:反序列化動態對象
FacebookClient client = new FacebookClient();
string path = "SELECT message, type, attachment FROM stream WHERE source_id = " + fbid.ToString();
dynamic result = client.Get("fql", new { q = path });
這個結果是什麼樣子 - 它回來的JSON
我需要反序列化這個充滿活力的對象,這是一個字符串JSON成C#對象。不知道可以在動態對象上執行foreach
循環。我也嘗試創建一個對象,並對我創建的對象進行反序列化。問題是,正如你所看到的,有很多屬性不是大部分時間返回的,那麼有時它們會被返回。所以Facebook返回的json總是有不同數量的屬性。我嘗試了一個for
循環,然後通過類似response.data.message [1]的方式將對象從json中取出,但這不起作用。任何想法如何讓這個動態對象反序列化成somethign我可以使用?
{"data":
[
{
"message": "",
"type": null,
"attachment": {
"description": ""
}
},
{
"message": "",
"type": 80,
"attachment": {
"media": [
{
"href": "https://www.facebook.com/pages/Team-Vintage/119337701414139",
"alt": "",
"type": "link",
"src": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/71056_119337701414139_6207793_n.jpg"
}
],
"name": "Team Vintage",
"href": "https://www.facebook.com/pages/Team-Vintage/119337701414139",
"caption": "",
"description": "Team Vintage is designed to handle all your event planning needs. We cater to individuals as well as groups and businesses focused on sporting events, concerts, tailgates, golf outings, as well as transportation via limos and party/coach buses.",
"properties": [
{
"name": "Page",
"text": "245 like this"
}
],
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yf/r/0HZPW6-lhQu.png"
}
},
{
"message": "",
"type": 237,
"attachment": {
"media": [
{
"href": "",
"alt": "",
"type": "swf",
"src": "https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=263101677125815&v=1&size=p&cksum=7d97808202a372d6392257f52d91e5d2&src=http%3A%2F%2Fi1.sndcdn.com%2Fartworks-000027234998-gkd71f-t500x500.jpg%3Fcc07a88",
"swf": {
"source_url": "http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F50851560&color=3b5998&auto_play=true&show_artwork=false&origin=facebook",
"preview_img": "https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=263101677125815&v=1&size=p&cksum=7d97808202a372d6392257f52d91e5d2&src=http%3A%2F%2Fi1.sndcdn.com%2Fartworks-000027234998-gkd71f-t500x500.jpg%3Fcc07a88",
"width": 460,
"height": 98,
"expanded_width": 0,
"expanded_height": 0
}
}
],
"name": "Camp Bisco",
"href": "http://soundcloud.com/amon-tobin/bed-time-stories-extended-live",
"caption": "",
"description": "Check out this extended track from Amon Tobin!",
"properties": [],
"icon": "https://www.facebook.com/images/icons/default_app_icon.gif"
}
},
{
"message": "",
"type": null,
"attachment": {
"description": ""
}
},
{
"message": "",
"type": 237,
"attachment": {
"media": [
{
"href": "https://dev.fanfueledengage.com/share/auitbc",
"alt": "",
"type": "link",
"src": "https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=263101677125815&v=1&size=z&cksum=124f2c1fb6ea2fcaa8d98ebe0fd2246d&src=http%3A%2F%2Fimages.proboardshop.com%2Fbigagnes-elkpark20-long-right-sleepingbag-coalrust-13-thumb.jpg"
}
],
"name": "Proboardshop",
"href": "https://dev.fanfueledengage.com/share/auitbc",
"caption": "dev.fanfueledengage.com",
"description": "I just bought Big Agnes Elk Park 20 Long Right Sleeping Bag Coal/Rust on FanFueled. I'm earning Camp Bisco points. Check it out. If you decide to make a purchase through my link, FanFueled will pay me a commission for it, cool huh?",
"properties": [],
"icon": "https://www.facebook.com/images/icons/default_app_icon.gif"
}
},
{
"message": "",
"type": 8,
"attachment": {
"description": ""
}
},
{
"message": "",
"type": 80,
"attachment": {
"media": [
{
"href": "https://www.facebook.com/pages/Magnolia-Roller-Vixens/29048470621",
"alt": "",
"type": "link",
"src": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/276513_29048470621_1691556_n.jpg"
}
],
"name": "Magnolia Roller Vixens",
"href": "https://www.facebook.com/pages/Magnolia-Roller-Vixens/29048470621",
"caption": "",
"description": "Magnolia Roller Vixens is a community-wise sports initiative for adult females. Our purpose is for fun, friendly sports competition among like-minded women. Magnolia Roller Vixens promotes and fosters the sport of women's flat track derby by facilitating the development of athletic ability, sportsw...",
"properties": [
{
"name": "Page",
"text": "2,717 like this"
}
],
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yf/r/0HZPW6-lhQu.png"
}
}
]
}
它甚至反序列化成一個正確的對象?是否有可能定義一個類型的最大數量從源接收到的屬性,然後將json反序列化爲strognly類型的對象? – Nilesh