2017-02-22 5 views
0
{"id":"190155258007","name":"name","email":"[email protected]","gender":"male", 
"friends":{"data":[{"id":"1331173146","name":"friendname1"},{"id":"120497111959","name":"friendname2"},{"id":"9980211103","name":"friendname3"}, 
{"id":"77872075894","name":"friendname4"}]} 

Я получаю этот результат JSON, но я могу получить десериализованное значение из отдельных значений, но этот массив друзей возвращает нулевое значение в C#. Как это исправить?Как удалить дескриптор json в facebook api

+0

См. Здесь http://stackoverflow.com/questions/3142495/deserialize-json-into-c-sharp-dynamic-object?rq=1 – Vertexwahn

ответ

0

Использование Newtonsoft.Json

Создайте свой собственный класс:

public class MyResponse { 
    public string id { get; set; } 
    public string name { get; set; } 
    public string email { get; set; } 
    public string gender { get; set; } 
    public friend friends { get; set; } 

    public class friend{ 
     public List<data> data {get;set;} 

     public class data { 
      string id {get;set;} 
      string name {get;set;} 
     } 
    } 
} 

Теперь вы можете десериализации вашего JSON как:

MyResponse response = Newtonsoft.Json.JsonConvert.DeserializeObject<MyResponse>("You json string here"); 

Теперь этот объект ответа будет заполнен вашим возвращение JSON строка. Если у вас нет DLL Newtonsoft.Json, вы можете скачать его по следующей ссылке:

https://www.nuget.org/packages/newtonsoft.json/

, если вы не хотите использовать пользовательский класс, вы можете использовать динамический ключевое слово, как:

dynamic stuff = JsonConvert.DeserializeObject("Your json string here"); 

string name = stuff.name; 
string email= stuff.email; 

И так далее.

+0

Спасибо за ваш ответ .. Но получить ошибку, как «Newtonsoft.Json. JsonSerializationException: не может десериализовать текущий объект JSON (например, {"name": "value"}) в тип 'System.Collections.Generic.List'1 [App.friend]', потому что для типа требуется массив JSON (например, [1, 2,3]) для десериализации. ' – selvam

+0

@selvam: Вы создали пользовательский класс, который я точно упомянул в своем ответе? –

+0

@selvam: Попробуйте сейчас. Он будет работать :) –

Смежные вопросы