C# 为JSON对象数组指定名称

C# 为JSON对象数组指定名称,c#,asp.net,json,asp.net-web-api,C#,Asp.net,Json,Asp.net Web Api,我是JSON新手,我正在尝试使用Asp.NETWebAPI从SQLServer中的数据库获取数据 我的输出json数组如下所示: [{“f0”:9608,“f1”:1461,“frbDescField_F56”:“Jan”,“f2”:“1461”, “f3”:“179:48”}] 但是Json的输出应该类似于以下代码: {“餐厅”:[{ “f0”:9608,“f1”:1461,“frbDescField_F56”:“Jan”,“f2”:“1461”,“f3”:“179:48”}] 我的代码是:

我是JSON新手,我正在尝试使用Asp.NETWebAPI从SQLServer中的数据库获取数据

我的输出json数组如下所示:

[{“f0”:9608,“f1”:1461,“frbDescField_F56”:“Jan”,“f2”:“1461”, “f3”:“179:48”}]

但是Json的输出应该类似于以下代码:

{“餐厅”:[{ “f0”:9608,“f1”:1461,“frbDescField_F56”:“Jan”,“f2”:“1461”,“f3”:“179:48”}]

我的代码是:

public IEnumerable<VI_TimeTotalMontly> Get(int id, string id1)
{
    using (tfmisEntities Entities = new tfmisEntities())
    {
        var result = Entities.VI_TimeTotalMontly.Where(e => e.F0 == id && e.F2 == id1).ToList();
        return result;
    }
}
公共IEnumerable Get(int-id,string-id1) { 使用(tfmisEntities Entities=new tfmisEntities()) { var result=Entities.VI_TimeTotalMontly.Where(e=>e.F0==id&&e.F2==id1.ToList(); 返回结果; } }
如何更改代码?

我将使用
动态对象包装您的结果:

dynamic output = new ExpandoObject();
output.restaurants = result;

return output;

您可以构建强类型匿名对象以匹配所需的输出。您还需要更改操作的返回类型,因为当您需要对象响应时,
IEnumerable
只返回一个集合

public IHttpActionResult Get(int id, string id1) {
    using (var Entities = new tfmisEntities()) {
        var restaurants = Entities.VI_TimeTotalMontly
                              .Where(e => e.F0 == id && e.F2 == id1)
                              .ToList();

        var result = new {
            restaurants = restaurants;
        };

        return Ok(result);
    }
}

这很好,但不完整。您还需要解释更改操作签名。我更喜欢这个答案,因为它不涉及运行时的操作,就像我们使用dynamic时一样。最好在编译时完成工作。除非您没有其他选择,否则请尝试使用此方法。