首先,创建一个名为 "MyClass" 的类,其中包含一个属性 "MyList",其类型为 "IList>"。
public class MyClass
{
public IList> MyList { get; set; }
}
然后,在 "Startup.cs" 文件的 "ConfigureServices" 方法中添加以下代码,以使 ASP.NET Core WebAPI 返回第一层级的属性:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.Preserve;
options.JsonSerializerOptions.Converters.Add(new FirstLevelPropertyConverter());
});
}
接下来,创建一个自定义的 "FirstLevelPropertyConverter" 类,继承自 "JsonConverter" 类,并重写其中的 "Read" 和 "Write" 方法。在 "Read" 方法中,我们只关注第一层级的属性,并将其存储到 "MyList" 属性中。
public class FirstLevelPropertyConverter : JsonConverter>>
{
public override IList> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var myList = new List>();
while (reader.Read())
{
if (reader.TokenType == JsonTokenType.EndArray)
{
break;
}
if (reader.TokenType == JsonTokenType.StartArray)
{
var subList = new List
这样,当使用 ASP.NET Core WebAPI 返回 "MyClass" 类的实例时,只会返回第一层级的属性。