Переименовать поле в Jsonerializer
-
19-09-2019 - |
Вопрос
У меня есть библиотека классов, которую мне нужно вывести через jsonResult в рамках ASP.NET MVC. (JsonResult использует Jsoneserializer для производства его вывода.)
Я обнаружил, прочитав документацию, что если вы положите [ScriptIgnore]
На общественной собственности/поля он не будет сериализован, очень похож на [XmlIgnore]
Для XML -сериализатора.
Мне нужна эквивалентная функциональность [XmlElement("elementname")]
, который определяет абсолютно название поля/свойства в выходной сериализации. У меня есть поле под названием Elements
Это должно быть сериализовано на поле названного elements
.
Как я могу сделать это с помощью JSONERIALIZER по умолчанию?
Спасибо, Дэвид
Решение
Вы используете DataContractJsonserializer учебный класс?
Если так ...
Добавьте вам этот атрибут Elements
поле
[DataMember(Name = "elements")]
Этот Так вопрос предполагает, как переопределить использование Jsonscriptserializer в JSondataContractSerializer.
Доброта,
Дэн
Другие советы
К сожалению, ответом в том, что вы не можете этого сделать. Сказав это, в настоящее время я разрабатываю модуль, который будет расширять любой объект, производя во время выполнения анонимного объекта, который будет следовать правилам из атрибутов, таких как Jsonignore или JsonProperty. Я опубликую больше, когда у меня что -то будет.