将XElement的子级作为对象的顶层检索

问题描述 投票:0回答:1

[使用XElement API并要求特定元素(通过.Element("Foo"))时,我得到一个对象,当该对象序列化为JSON(使用ASP.NET Core)时,该对象将产生一个具有单个字段的对象( Foo),然后包含Foo的所有子对象。

如何使Foo的所有子级都包含在序列化对象的顶层? .Elements()方法将为我提供元素,但我不希望它们作为集合,我希望它们作为对象上的字段。

c# linq-to-xml xelement
1个回答
0
投票

如果您对默认串行器对XElement的串行化方式不满意,则基本上有两个选择。

  1. 创建您的自定义类型并序列化此类型的实例。

  2. XElement或您的自定义类型创建一个自定义转换器。

如果使用的是System.Text.Json(这是ASP.NET Core 3.x中的默认值,则您将从System.Text.Json.Serialization.JsonConverter<T>继承并覆盖ReadWrite方法。

如果您仍在使用Newtonsoft.Json,则继承自Newtonsoft.Json.JsonConverter<T>,并覆盖ReadJsonWriteJson方法。

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