2016-10-28 2 views
0

Итак, я вызываю API LinkedIn для получения данных профиля и извлекает JSON.Извлечь информацию из вложенного значения JSON

{ 
    "firstName": "Cristian Viorel", 
    "headline": ".NET Developer", 
    "location": { 
    "country": {"code": "dk"}, 
    "name": "Northern Region, Denmark" 
    }, 
    "pictureUrls": { 
    "_total": 1, 
    "values": ["https://media.licdn.com/mpr/mprx/0_PXALDpO4eCHpt5z..."] 
    } 
} 

Я могу использовать student.firstname, student.headline. Как я могу получить имя местоположения или значение pictureUrl? Что-то вроде student.location.name или student.pictureUrls.values?

+0

вы пробовали ваши предложения? –

ответ

3

Довольно легко с Json.Net. Вы сначала определить модель:

public class Country 
{ 
    public string code { get; set; } 
} 

public class Location 
{ 
    public Country country { get; set; } 
    public string name { get; set; } 
} 

public class PictureUrls 
{ 
    public int _total { get; set; } 
    public List<string> values { get; set; } 
} 

public class JsonResult 
{ 
    public string firstName { get; set; } 
    public string headline { get; set; } 
    public Location location { get; set; } 
    public PictureUrls pictureUrls { get; set; } 
} 

Тогда вы просто разобрать ваши данные в формате JSON:

string json = @"{ 
     'firstName': 'Cristian Viorel', 
     'headline': '.NET Developer', 
     'location': { 
     'country': {'code': 'dk'}, 
     'name': 'Northern Region, Denmark' 
     }, 
     'pictureUrls': { 
     '_total': 1, 
     'values': ['https://media.licdn.com/mpr/mprx/0_PXALDpO4eCHpt5z...'] 
     } 
    }"; 

JsonResult result = JsonConvert.DeserializeObject<JsonResult>(json); 

Console.WriteLine(result.location.name); 

foreach (var pictureUrl in result.pictureUrls.values) 
    Console.WriteLine(pictureUrl); 
+0

он работает! Большое спасибо Алекс! – crystyxn

0

Для имени да, но для изображения вам нужен цикл for или если вы просто хотите получить первый элемент student.pictureUrls.values ​​[0] (значения представляются массивом).

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