Я бы не стал рассматривать этот подход для большого количества переименований. Тогда лучше следовать советам, данным в комментариях.
от вопрос уже есть ответ здесь:
Используйте другое имя для сериализации и десериализации с Json.Net 1 ответЯ пытаюсь прочитать файл JSON, переименовать имена свойств и экспортировать новый JSON с новыми именами. Как указано в этом примере,https://www.newtonsoft.com/json/help/html/JsonPropertyName.htmмы можем использовать JsonProperty, чтобы указать другое имя внутри кода. Однако, когда вы экспортируете json, он возвращает оригинальное имя. Таким образом, в примере он по-прежнему возвращал «release_date» вместо «ReleaseDate», когда он был зарегистрирован в консоли. Есть ли способ сделать это, не создавая новый объект?
Чтобы прояснить ситуацию, вот пример того, что я пытаюсь сделать:
Вход JSON:
{ "name": "Starcraft", "release_date": "1998-01-01T00:00:00" }
Объект Используется для десериализации данных:
public class Videogame
{
public string name{ get; set; }
[JsonProperty("release_date")]
public DateTime releaseDate { get; set; }
}
Код, который называется:
var json = JsonConvert.DeserializeObject<Videogame>(File.ReadAllText(path))
Console.WriteLine(JsonConvert.SerializeObject(json));
Результирующий вывод:
{ "name": "Starcraft", "release_date": "1998-01-01T00:00:00" }
Желаемый результат:
{ "name": "Starcraft", "releaseDate": "1998-01-01T00:00:00" }
Единственный способ, которым я в настоящее время знаю, как решить это, состоит в том, чтобы создать новый объект и использовать его для сериализации моего вывода. Не был уверен, есть ли более простой способ сделать это.