2016-10-28 21 views
0

私はLinkedIn APIを呼び出してプロファイルデータを取得し、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

はい、しかし、絵のためにあなたは、ループのために必要とするか、またはあなただけの最初の項目のstudent.pictureUrls.valuesをしたい場合は、[0](値は、配列のようです)。

関連する問題