[使用XElement
API并要求特定元素(通过.Element("Foo")
)时,我得到一个对象,当该对象序列化为JSON(使用ASP.NET Core)时,该对象将产生一个具有单个字段的对象( Foo),然后包含Foo的所有子对象。
如何使Foo的所有子级都包含在序列化对象的顶层? .Elements()
方法将为我提供元素,但我不希望它们作为集合,我希望它们作为对象上的字段。
如果您对默认串行器对XElement
的串行化方式不满意,则基本上有两个选择。
创建您的自定义类型并序列化此类型的实例。
为XElement
或您的自定义类型创建一个自定义转换器。
如果使用的是System.Text.Json(这是ASP.NET Core 3.x中的默认值,则您将从System.Text.Json.Serialization.JsonConverter<T>
继承并覆盖Read
和Write
方法。
如果您仍在使用Newtonsoft.Json,则继承自Newtonsoft.Json.JsonConverter<T>
,并覆盖ReadJson
和WriteJson
方法。