将Json结果合并为一个

时间:2016-08-02 16:05:16

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

我在控制器中有以下代码,因为您可以看到它返回一个序列化为Json的对象。

...
     [HttpGet("{id}")]
            public IActionResult Get(string id)
            {
                ClientsRepository ClientsRepo = new ClientsRepository(connectionString);
                return Json(ClientsRepo.GetClientCreditSummary(id));
            }
...

获取数据的方法是在ClientsRepo.GetClientCreditSummary中,我想将它与另一个名为ClientsRepo.GetClient的方法合并,并在同一控制器操作中将其作为Json结果返回。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用匿名类型:

return Json(new { ClientCreditSummary = ClientsRepo.GetClientCreditSummary(id), Client = ClientsRepo.GetClient(id) });

有关匿名类型http://www.c-sharpcorner.com/UploadFile/ff2f08/anonymous-types-in-C-Sharp/

的更多信息

如果您想要将两个实体的字段合并为一个实体,我认为最好的方法是手动将每个字段映射到新实体。

答案 1 :(得分:0)

将两个像这样的对象组合在一起并不是很好的形式。

考虑改为创建一个新对象,将另外两个作为属性保存:

[HttpGet("{id}")] 
public IActionResult Get(string id
{
    var repo = new ClientsRepository(connectionString);
    var creditSummary = repo.GetClientCreditSummary(id);

    var client = repo.GetClientById(id);

    var result = new
    {
        Client = client,
        CreditSummary = creditSummary
    };

    return Json(result); 
}