Click or drag to resize
Json.NET

Deserializing from JSON with LINQ

 

This sample uses LINQ to JSON to manually convert JSON to a .NET type.

Sample
Types
public class BlogPost
{
    public string Title { get; set; }
    public string AuthorName { get; set; }
    public string AuthorTwitter { get; set; }
    public string Body { get; set; }
    public DateTime PostedDate { get; set; }
}
Usage
string json = @"[
  {
    'Title': 'Json.NET is awesome!',
    'Author': {
      'Name': 'James Newton-King',
      'Twitter': '@JamesNK',
      'Picture': '/jamesnk.png'
    },
    'Date': '2013-01-23T19:30:00',
    'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
  }
]";

JArray blogPostArray = JArray.Parse(json);

IList<BlogPost> blogPosts = blogPostArray.Select(p => new BlogPost
{
    Title = (string)p["Title"],
    AuthorName = (string)p["Author"]["Name"],
    AuthorTwitter = (string)p["Author"]["Twitter"],
    PostedDate = (DateTime)p["Date"],
    Body = HttpUtility.HtmlDecode((string)p["BodyHtml"])
}).ToList();

Console.WriteLine(blogPosts[0].Body);
// <h3>Title!</h3>
// <p>Content!</p>