JsonSerializer中的重命名字段

问题描述 投票:4回答:3

我有一个类库,需要通过ASP.NET MVC框架中的JsonResult输出。 (JsonResult使用JsonSerializer产生其输出。)

我通过阅读文档发现,如果将[ScriptIgnore]放在公共属性/字段上,它将不会被序列化,就像XML序列化器的[XmlIgnore]

我需要[XmlElement("elementname")]的等效功能,该功能绝对指定输出序列化中字段/属性的名称。我有一个名为Elements的字段,需要将其序列化为一个名为elements的字段。

如何使用默认的JsonSerializer完成此操作?

谢谢,大卫

.net asp.net-mvc json jsonserializer
3个回答
2
投票

您是否正在使用DataContractJsonSerializer类?

如果是...

将此属性添加到您的Elements字段中

[DataMember(Name = "elements")] 

SO question建议如何将JsonScriptSerializer的使用覆盖到JsonDataContractSerializer。

亲切,


1
投票

不幸的答案是,你不能这样做。话虽如此,我目前正在开发一个模块,该模块将通过在运行时产生一个遵循对象(如JsonIgnore或JsonProperty)规则的匿名对象来扩展任何对象。有空的话我会再发表。


0
投票

此的正确属性是JsonPropertyName

© www.soinside.com 2019 - 2024. All rights reserved.