http://stackoverflow.com/questions/39887458/json-net-jsonconvert-deserializeobject

CSharp · Console

/Program.cs

using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
					
public class Program
{
	public static void Main()
	{
		string json = @"
            {
              ""id"": ""53234..."",
              ""first_name"": ""Nik"",
              ""last_name"": ""Westfield"",
              ""email"": ""[email protected]"",
              ""picture"": {
                ""data"": {
                  ""height"": 720,
                  ""is_silhouette"": false,
                  ""url"": ""https://scontent.xx.fbcdn.net/v/t1.0-1/p720x720/3221....."",
                  ""width"": 720
                }
              }
            }";
		
		FacebookMeDto me = JsonConvert.DeserializeObject<FacebookMeDto>(json);
		Console.WriteLine("height: " + me.PictureDto.Height);
		Console.WriteLine("url: " + me.PictureDto.Url);
	}
}

public class FacebookMeDto
{
	[JsonProperty("id")]
	public string Id { get; set; }
	
	[JsonProperty("picture")]
	[JsonConverter(typeof(FacebookPictureDtoConverter))]
	public FacebookPictureDto PictureDto { get; set; }
}

public class FacebookPictureDto
{
	[JsonProperty("height")]
	public int Height { get; set; }
	
	[JsonProperty("url")]
	public string Url { get; set; }
}

public class FacebookPictureDtoConverter : JsonConverter
{
	public override bool CanConvert(Type objectType)
	{
		return objectType == typeof(FacebookPictureDto);
	}
	
	public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
	{
		JObject obj = JObject.Load(reader);
		FacebookPictureDto dto = new FacebookPictureDto();
		serializer.Populate(obj["data"].CreateReader(), dto);
		return dto;
	}
	
	public override bool CanWrite
	{
		get { return false; }
	}
	
	public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
	{
		throw new NotImplementedException();
	}
}
;