+ All Categories
Home > Documents > Telerik Software Academy Databases.

Telerik Software Academy Databases.

Date post: 17-Jan-2018
Category:
Upload: shonda-welch
View: 232 times
Download: 0 times
Share this document with a friend
Description:
What is JSON?
31
Processing JSON in .NET Telerik Software Academy http://academy.telerik.com Databases
Transcript
Page 1: Telerik Software Academy  Databases.

Processing JSON in .NET

Telerik Software Academyhttp://academy.telerik.com

Databases

Page 2: Telerik Software Academy  Databases.

Table of Contents

The JSON data format Rules and features Usage

JSON.NET Overview Installation and usage LINQ-to-JSON JSON to XML and XML to JSON

Page 3: Telerik Software Academy  Databases.

The JSON Data FormatWhat is JSON?

Page 4: Telerik Software Academy  Databases.

The JSON Data Format

JSON (JavaScript Object Notation) is a lightweight data format Human and machine-readable Based on the way of creating

objects in JS Platform independent – can be used

with any programming language

Page 5: Telerik Software Academy  Databases.

JSON Rules The JSON data format follows the rules of object creation in JavaScript Strings, numbers and Booleans are

valid JSON"this is string and is valid JSON"

Arrays are valid JSON[5, 'string', true]

Objects are valid JSON{ "firstname": "Doncho", "lastname": "Minkov", "occupation": "Technical trainer"}

Page 6: Telerik Software Academy  Databases.

JSON Rules The JSON data format follows the rules of object creation in JavaScript Strings, numbers and Booleans are

valid JSON"this is string and is valid JSON"

Arrays are valid JSON[5, 'string', true]

Objects are valid JSON{ "firstname": "Doncho", "lastname": "Minkov", "occupation": "Technical trainer"}

The double quotes for the

keys are mandatory

Page 7: Telerik Software Academy  Databases.

Processing JSON in .NETHow to parse JSON in .NET?

Page 8: Telerik Software Academy  Databases.

Built-in JSON Serializers .NET has built-in JSON serializer:

The JavaScriptSerializer class, contained in System.Web.Extensions assembly

JavaScriptSerializer is able to parse C# object to JSON string and vice versa:var place = new Place(…);var serializer = new JavaScriptSerializer();

var jsonPlace = serializer.Serialize(place);var objPlace = serializer.Deserialize<place>(jsonPlace);

Page 9: Telerik Software Academy  Databases.

JavaScript SerializerLive Demo

Page 10: Telerik Software Academy  Databases.

JavaScriptSerializer Features

JavaScript serializer has nice features: Serializing objects to JSON and vice

versa Correct parsing of dictionaries:digits = new Dictionary<string, int> { { "one", 1}, { "two", 2}, … };

Page 11: Telerik Software Academy  Databases.

JavaScriptSerializer Features

JavaScript serializer has nice features: Serializing objects to JSON and vice

versa Correct parsing of dictionaries:digits = new Dictionary<string, int> { { "one", 1}, { "two", 2}, … };

{ "one": 1, "two": 2, "three": 3, "four": 4,…}

Is parsed to

Page 12: Telerik Software Academy  Databases.

JavaScriptSerializer Features

JavaScript serializer has nice features: Serializing objects to JSON and vice

versa Correct parsing of dictionaries:digits = new Dictionary<string, int> { { "one", 1}, { "two", 2}, … };

{ "one": 1, "two": 2, "three": 3, "four": 4,…}

Is parsed to

Page 13: Telerik Software Academy  Databases.

JavaScript Serializer Features

Live Demo

Page 14: Telerik Software Academy  Databases.

JSON.NETBetter JSON parsing than with

JavaScriptSerializer

Page 15: Telerik Software Academy  Databases.

JSON.NET

JavaScriptSerializer is good But JSON.NET is better

JSON.NET: Has better performance Supports LINQ-to-JSON Has an out-of-the-box support for

parsing between JSON and XML

Page 16: Telerik Software Academy  Databases.

Installing JSON.NET To install JSON.NET, run in the Package Manager Console:$ Install-Package Newtonsoft.Json

Has two primary methods: Serialize an object:

var serializedPlace = JsonConvert.SerializeObject(place);

var deserializedPlace = JsonConvert.DeserializeObject<Place>(serializedPlace);

Deserialize an object:

Page 17: Telerik Software Academy  Databases.

Serializing and Deserializing Objects

Live Demo

Page 18: Telerik Software Academy  Databases.

JSON.NET Features JSON.NET can be configured to:

Indent the output JSON string To convert JSON to anonymous

types To control the casing and properties

to parse To skip errors

JSON.NET also supports: LINQ-to-JSON Direct parse between XML and JSON

Page 19: Telerik Software Academy  Databases.

var json = @"{ 'firstName': 'Doncho'," 'lastName': 'Minkov', 'occupation': 'Technical Trainer' }";var template = new { FirstName = "", Lastname = "", Occupation = ""};var person = JsonConvert.DeserializeAnonymousType(json, template);

Configuring JSON.NET To indent the output string use Formattingg.Indented:JsonConvert.SerializeObject(place, Formatting.Indented);

Deserializing to anonymous types:

Page 20: Telerik Software Academy  Databases.

var json = @"{ 'firstName': 'Doncho'," 'lastName': 'Minkov', 'occupation': 'Technical Trainer' }";var template = new { FirstName = "", Lastname = "", Occupation = ""};var person = JsonConvert.DeserializeAnonymousType(json, template);

Should providea template

Should provide a template

Configuring JSON.NET To indent the output string use Formattingg.Indented:JsonConvert.SerializeObject(place, Formatting.Indented);

Deserializing to anonymous types:

Page 21: Telerik Software Academy  Databases.

Configuring JSON.NETLive Demo

Page 22: Telerik Software Academy  Databases.

JSON.NET Parsing of Objects

By default JSON.NET takes each Property/Field from the public interface of a class and parses it This can be controlled using

attributes:public class User{ [JsonProperty("user")] public string Username{get;set;} [JsonIgnore] public string Password{get;set;}}

Page 23: Telerik Software Academy  Databases.

JSON.NET Parsing of Objects

By default JSON.NET takes each Property/Field from the public interface of a class and parses it This can be controlled using

attributes:public class User{ [JsonProperty("user")] public string Username{get;set;} [JsonIgnore] public string Password{get;set;}}

Tells the converter to parse "Username"

to "user"

Page 24: Telerik Software Academy  Databases.

JSON.NET Parsing of Objects

By default JSON.NET takes each Property/Field from the public interface of a class and parses it as is This can be controlled using

attributes:public class User{ [JsonProperty("user")] public string Username{get;set;} [JsonIgnore] public string Password{get;set;}}

Tells the converter to skip the property

"Password"

Tells the converter to parse "Username"

to "user"

Page 25: Telerik Software Academy  Databases.

JSON.NET Parsing of Objects

Live Demo

Page 26: Telerik Software Academy  Databases.

LINQ-to-JSON

JSON.NET has a support for LINQ-to-JSONvar jsonObj = JObject.Parse(json);Console.WriteLine("Places in {0}:", jsonObj["name"]);

jsonObj["places"].Select( pl => string.Format("{0}) {1} ({2})", index++, pl["name"], string.Join(", ", pl["categories"].Select( cat => cat["name"])))) .Print();

Page 27: Telerik Software Academy  Databases.

LINQ-to-JSONLive Demo

Page 28: Telerik Software Academy  Databases.

XML to JSON and JSON to XML

Page 29: Telerik Software Academy  Databases.

XML to JSON and JSON to XML

Conversions from JSON to XML are done using two methods: XML to JSON

string jsonFromXml = JsonConvert.SerializeXNode(doc);

XDocument xmlFromJson = JsonConvert.DeserializeXNode(json);

JSON to XML

Page 30: Telerik Software Academy  Databases.

XML to JSON and JSON to XML

Live Demo

Page 31: Telerik Software Academy  Databases.

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезанияASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET

курсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Processing JSON in .NET

http://academy.telerik.com


Recommended