从嵌套的JSON值

时间:2016-10-28 08:24:16

标签: c# json parsing

所以我调用LinkedIn API来获取配置文件数据并检索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?

2 个答案:

答案 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);

答案 1 :(得分:0)

对于名称是,但对于图片,您需要一个for循环或者如果您只想要第一个项目student.pictureUrls.values [0](值似乎是一个数组)。