С#: Как выбрать свойства json, которые будут записываться в файл, а какие нет?C#

Место общения программистов C#
Ответить
Anonymous
 С#: Как выбрать свойства json, которые будут записываться в файл, а какие нет?

Сообщение Anonymous »

Например, у нас есть этот класс:

Код: Выделить всё

public class Foo
{
public string A { get; set; } = "Hello world! This is a good string!";
public string B { get; set; } = "Hello world! This is a good string!";
public string C { get; set; } = "Hello world! This is a good string!";
}
Позже где-то в коде мы делаем следующее:

Код: Выделить всё

var foo1 = new Foo { A = "Test" };
File.WriteAllText("C:\some\path\file1.json", JsonConvert.SerializeObject(foo1));

var foo2 = new Foo { B = "Test" };
File.WriteAllText("C:\some\path\file2.json", JsonConvert.SerializeObject(foo2));
Оба файла будут иметь одинаковые свойства «не используется, по умолчанию»:
file1.json:

Код: Выделить всё

{
"A": "Test",
"B": "Hello world! This is a good string!",
"C": "Hello world! This is a good string!"
}
file2.json:

Код: Выделить всё

{
"A": "Hello world! This is a good string!",
"B": "Test",
"C": "Hello world! This is a good string!"
}
Вопрос: как мне избавиться от неиспользуемых свойств, чтобы сэкономить место на диске? Они мне не нужны, потому что их значение по умолчанию задано в коде инициализации. Может быть, я могу как-то выбрать, какие свойства мне нужно сериализовать, а какие нет? Есть ли более простой способ, чем динамически добавлять и удалять атрибут [JsonIgnore] в классе?

Подробнее здесь: https://stackoverflow.com/questions/792 ... d-which-wi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»