2016-11-30 3 views
0

Я пытаюсь получить данные профиля Facebook через API-интерфейс Graph. Я использую Facebook SDK в приложении MVC. Использование следующего кода возвращает динамический результат.Deserialize dynamic object in C#

dynamic myInfo = await fb.GetTaskAsync("v2.8/me?fields=first_name,last_name,link,locale,email,name,birthday,gender,location,age_range"); 
     var facebookProfile = new FacebookProfileViewModel() 
       { 
        FirstName = myInfo.first_name, 
        LastName = myInfo.last_name, 
        LinkUrl = myInfo.link, 
        Locale = myInfo.locale }; 

Я получаю данные из Facebook, как это -

[{"Key":"first_name","Value":"John"},{"Key":"last_name","Value":"Doe"},{"Key":"link","Value":"https://www.facebook.com/app_scoped_user_id/4327693/"}] 

Я получаю следующее сообщение об ошибке -

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot implicitly convert type 'Facebook.JsonObject' to 'string' 

ответ

1

Установка newtonsoft:

Install-Package Newtonsoft.Json

Конвертировать из json:

string json = 
"[ 
    { 
     "Key": "first_name", 
     "Value": "John" 
    }, 
    { 
     "Key": "last_name", 
     "Value": "Doe" 
    }, 
    { 
     "Key": "link", 
     "Value": "https://www.facebook.com/app_scoped_user_id/4327693/" 
    } 
]"; 
FbProfile Profile = JsonConvert.DeserializeObject<FbProfile>(json); 
+0

Thank you Mohit. Это не работает, я пытался связать с моей ViewModel. – Tajuddin

+0

не работает, потому что ожидаемый результат json {"first_name": "John", "last_name": "Doe", "link": "https://www.facebook.com/app_scoped_user_id/4327693/"} –

+0

@snnbrn это также действительный json. Лемме отформатируйте его, чтобы показать, как он выглядит –