Можно ли сериализовать имя класса, похожее на свойство - PullRequest
1 голос
/ 04 июня 2019

Я понимаю, что могу использовать код, подобный приведенному ниже, чтобы изменить имя свойства с Name на name, когда оно сериализовано, но я также хочу изменить имя объекта, когда оно сериализовано и возвращено, используя return что-то вроде Ok (myobj);

Но возможно ли сделать что-то подобное для класса, как показано ниже, чтобы оно сериализовалось как человек, а не как человек.Я посмотрел на JsonObject, но там ничего не вижу.

[JsonObject(PropertyName="person")]
public class Person
{
    [JsonProperty(PropertyName = "name")]
    public String Name { get; set; }

}

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Если вы просто хотите, чтобы имя вашего класса начиналось со строчной буквы, вы можете сделать это:

[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
public class Person
{

}

Это установит первую букву имени вашего класса в нижний регистр, так как он использует CamelCaseNamingStategy, вы также можете создать свою собственную стратегию именования в соответствии с вашими потребностями, реализацию существующих состояний именования можно найти здесь: ( https://github.com/JamesNK/Newtonsoft.Json/tree/master/Src/Newtonsoft.Json/Serialization)

0 голосов
/ 05 июня 2019

Вам понадобится еще один объект-обертка, чтобы иметь это.Вы можете использовать:

return Ok(new{
  Person = myobj
});
...