JSON (JavaScript Object Notation) — это текстовый формат обмена данными, основанный на синтаксисе объектов JavaScript. Несмотря на происхождение из JavaScript, JSON является языко-независимым и широко используется в современных приложениях для передачи и хранения структурированных данных.
JSON поддерживает несколько типов данных:
{ "ключ": "значение" }
["элемент1", "элемент2"]
"текст"
42
, 3.14
true
, false
null
{
"firstName": "Иван",
"lastName": "Петров",
"age": 30,
"isDeveloper": true,
"address": {
"street": "Ленина 10",
"city": "Москва"
},
"languages": ["C#", "JavaScript", "SQL"]
}
В .NET для работы с JSON используются следующие пространства имен:
System.Text.Json
(встроен в .NET Core 3.0+)Newtonsoft.Json
(популярная сторонняя библиотека)var person = new {
Name = "Анна",
Age = 25,
Skills = new[] { "C#", "ASP.NET" }
};
string json = JsonSerializer.Serialize(person);
// Результат: {"Name":"Анна","Age":25,"Skills":["C#","ASP.NET"]}
string json = @"{""Name"":""Анна"",""Age"":25}";
var person = JsonSerializer.Deserialize<Person>(json);
public class Person {
public string Name { get; set; }
public int Age { get; set; }
}
public class Product {
[JsonPropertyName("product_name")]
public string Name { get; set; }
[JsonIgnore]
public decimal Price { get; set; }
}
var options = new JsonSerializerOptions {
WriteIndented = true, // Красивый вывод с отступами
PropertyNamingPolicy = JsonNamingPolicy.CamelCase // camelCase для свойств
};
var json = "{\"name\":\"Телефон\",\"price\":999}";
var dynamicObj = JsonSerializer.Deserialize<JsonElement>(json);
Console.WriteLine(dynamicObj.GetProperty("name").GetString());
JSON — это универсальный, легкий и удобный формат обмена данными, который стал стандартом де-факто в современных приложениях. В .NET для работы с JSON предлагаются как встроенные средства (System.Text.Json
), так и популярные сторонние библиотеки (Newtonsoft.Json
), предоставляющие богатые возможности для сериализации и десериализации данных.