Переименовать поле в 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. Я опубликую больше, когда у меня что-то будет.