Skip to content

Latest commit

 

History

History
54 lines (48 loc) · 1.85 KB

DeserializeWithLinq.md

File metadata and controls

54 lines (48 loc) · 1.85 KB

Deserializing from JSON with LINQ

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

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; }
}

snippet source | anchor

var 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>'
             }
           ]
           """;

var blogPostArray = JArray.Parse(json);

var 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>

snippet source | anchor