JsonPropertyName
В JSON попадают публичные свойства с
get и set, если атрибут
не говорит иное.
JsonPropertyName переименовывает
ключ при
Serialize
и
Deserialize.
Скрыть свойство -
JsonIgnore.
Синтаксис
using System.Text.Json.Serialization;
[JsonPropertyName("jsonName")]
public string PropertyName { get; set; }
Пример
Давайте записать свойство под ключом
abcde:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Item
{
[JsonPropertyName("abcde")]
public string Name { get; set; }
}
class Program
{
static void Main()
{
string json = JsonSerializer.Serialize(
new Item { Name = "x" });
bool res = json.Contains("abcde")
&& !json.Contains("\"Name\"");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте прочитать значение по ключу
abcde:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Item
{
[JsonPropertyName("abcde")]
public string Name { get; set; }
}
class Program
{
static void Main()
{
var item = JsonSerializer.Deserialize<Item>(
"{\"abcde\":\"abcde\"}");
string res = item.Name;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте сериализовать строку
abcde:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Item
{
[JsonPropertyName("abcde")]
public string Name { get; set; }
}
class Program
{
static void Main()
{
string res = JsonSerializer.Serialize(
new Item { Name = "abcde" });
Console.WriteLine(res);
}
}
Результат выполнения кода:
{"abcde":"abcde"}
Смотрите также
-
JsonIgnore,
не писать поле -
JsonRequired,
поле обязательно -
JsonInclude,
включить непубличное -
JsonExtensionData,
лишние поля