использовать ISNULL (поле, 0), это будет вставлять ноль, если поле NULL
.net 3.0 идет System.Text.Json
встроенный, что означает, что можно теперь десериализовать/сериализировать JSON без [1 123] пользование сторонней библиотекой.
Для сериализации класса (классов) к строке JSON:
var json = JsonSerializer.Serialize(order);
Для десериализации JSON в класс со строгим контролем типов:
var order = JsonSerializer.Deserialize<Order>(json);
Поэтому, если у Вас есть класс как ниже:
public class Order
{
public int Id { get; set; }
public string OrderNumber { get; set; }
public decimal Balance { get; set; }
public DateTime Opened { get; set; }
}
var json = JsonSerializer.Serialize(order);
// creates JSON ==>
{
"id": 123456,
"orderNumber": "ABC-123-456",
"balance": 9876.54,
"opened": "2019-10-21T23:47:16.85",
};
var order = JsonSerializer.Deserialize<Order>(json);
// ==> creates the above class
<час> Одна вещь отметить состоит в том, что System.Text.Json
не делает автоматически дескриптор camelCase
свойства JSON при использовании собственного кода (однако, он делает при использовании запросов MVC/WebAPI и образцового редактора связей).
Поэтому, если у Вас есть JSON как ниже и Order
как вышеупомянутый тогда, он не десериализует в Ваш класс.
var json = @"{
""id"": 123456,
""orderNumber"": ""ABC-123-456"",
""balance"": 9876.54,
""opened"": ""2019-10-21T23:47:16.8513874+01:00"",
}";
Для разрешения этого необходимо передать JsonSerializerOptions
в качестве параметра (к сожалению, не возможно настроить это широкое приложение).
JsonSerializerOptions options = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase, // set camelCase
WriteIndented = true // write pretty json
};
// serialize using options
var json = JsonSerializer.Serialize(order, options);
// deserialize using options
var order = JsonSerializer.Deserialize<Order>(json, options);
System.Text.Json
также доступно для.Net Framework и.Net Standard, поскольку Ню - получает пакет Система. Текст. Json