我有一个类库,我需要通过ASP.NET MVC框架中的JsonResult输出。 (JsonResult使用JsonSerializer生成其输出。)
我通过阅读文档发现,如果将[ScriptIgnore]
放在公共属性/字段上,它将不会被序列化,就像XML序列化程序的[XmlIgnore]
一样。
我需要[XmlElement("elementname")]
的等效功能,它绝对指定输出序列化中字段/属性的名称。我有一个名为Elements
的字段需要序列化到名为elements
的字段。
如何使用默认的JsonSerializer完成此操作?
谢谢, 大卫
答案 0 :(得分:2)
您使用的是DataContractJsonSerializer课吗?
如果是这样......
将此属性添加到Elements
字段
[DataMember(Name = "elements")]
这个SO question建议如何覆盖JsonScriptSerializer到JsonDataContractSerializer的使用。
善,
丹
答案 1 :(得分:1)
不幸的答案是,你不能这样做。话虽如此,我目前正在开发一个模块,它将通过在运行时生成一个匿名对象来扩展任何对象,该对象将遵循属性的规则,例如JsonIgnore或JsonProperty。当我有东西时,我会发布更多信息。
答案 2 :(得分:-1)
正确的属性是JsonPropertyName。