如何在ASP.NET核心MVC Web API中格式化JSON结果?

如何在ASP.NET核心MVC Web API中格式化JSON结果?,json,asp.net-web-api,asp.net-core,Json,Asp.net Web Api,Asp.net Core,WebAPI将自动返回JSON,但如果我想让它在不同的布局中呢。例如,如果Web API返回 [ { "patron": 9, "last_name": "Smith", "book": { "book_id": 1, "patron": 9 } }, { "patron": 9, "last_name": "Smith",

WebAPI将自动返回JSON,但如果我想让它在不同的布局中呢。例如,如果Web API返回

[
    {
        "patron": 9,
        "last_name": "Smith",
        "book": {
            "book_id": 1,
            "patron": 9
        }
    },

    {
        "patron": 9,
        "last_name": "Smith",
        "book": {
            "book_id": 2,
            "patron": 9
        }
    },
    {
        "patron": 9,
        "last_name": "Smith",
        "book": {
            "book_id": 3,
            "patron": 9
        }
    }
]
但是我想

[
    {
        "patron": 9,
        "last_name": "Smith",
        "books": [
         {
            "book_id": 1,
            "patron": 9
         },
        {
            "book_id": 2,
            "patron": 9
        },
        {
            "book_id": 3,
            "patron": 9
        }

        ]
    }
]

有没有一种不用手写JSON结果的方法?我真的不想那样做。

您要返回的模型需要
书籍的
IEnumerable
类型

当前,.NET模型/JSON的形状为:

public class Patron
{
    public int patron { get; set; }
    public int book_id { get; set; }
    public Book book { get; set; }
}
您描述的输出如下所示:

public class Patron
{
    public int patron { get; set; }
    public int book_id { get; set; }
    public IEnumerable<Book> books { get; set; }
}
公共类用户
{
公共int用户{get;set;}
public int book_id{get;set;}
公共IEnumerable图书{get;set;}
}