WebAPI模型绑定复杂类型 - JSON对象到集合

时间:2017-02-12 03:59:51

标签: c# json asp.net-web-api json.net model-binding

我在WebAPI端点上有以下方法签名:

[HttpPost]
public async Task<IHttpActionResult> AddShopping(List<ShoppingList> shoppingList)
{

这是POST正文中收到的示例JSON:

[
    {
        "name":"Bob",
        "items":{"food":"apple","quantity":1}
    },
    {
        "name":"Tim",
        "items":[{"food":"orange","quantity":3}]
    },
    {
        "name":"John",
        "items":[
            {"food":"banana","quantity":3},
            {"drink":"coke","quantity":2}
            ]
    }
]

注意第一个'items'是一个对象,第二个和第三个'items'是数组。

我想将它绑定到此模型,因此第一个“项目”中的对象将被放入“项目”列表中。如果可以,我该怎么办?希望这是一个用属性装饰模型中'Items'属性的问题!

namespace Test
{
    using System.Collections.Generic;

    public class ShoppingList
    {
        public List<Item> Items { get; set; }
        public string Name { get; set; }
    }

    public class Item
    {
        public string Food { get; set; }
        public int Quantity { get; set; }
    }
}

0 个答案:

没有答案