Переименовать поле в JsonSerializer
У меня есть библиотека классов, которую я должен вывести через JsonResult в ASP.NET фреймворк MVC. (JsonResult использует JsonSerializer для получения своих выходных данных.)
Прочитав документацию, я обнаружил, что если поместить[ScriptIgnore]
в публичное свойство/поле, оно не будет сериализовано, как [XmlIgnore]
для XML-сериализатора.
Мне нужна эквивалентная функциональность [XmlElement("elementname")]
, которая абсолютно точно определяет имя поля / свойства в выходной сериализации. У меня есть поле. вызывается Elements
, который должен быть сериализован в поле с именем elements
.
Как я могу сделать это, используя стандартный JsonSerializer?
Спасибо, Дэвид
2 ответа:
Вы используете классDataContractJsonSerializer ?
Если так ...
Добавьте этот атрибут в поле
Elements
[DataMember(Name = "elements")]
Это поэтому вопрос предполагает, как переопределить использование JsonScriptSerializer для JsonDataContractSerializer.
Доброта,
Дан
К сожалению, вы не можете этого сделать. Тем не менее, в настоящее время я разрабатываю модуль, который расширит любой объект, создав во время выполнения анонимный объект, который будет следовать правилам из атрибутов, таких как JsonIgnore или JsonProperty. Я опубликую больше, когда у меня что-то будет.