C# 返回JSON对象(ASP.NET WebAPI)

C# 返回JSON对象(ASP.NET WebAPI),c#,asp.net,json,asp.net-web-api,C#,Asp.net,Json,Asp.net Web Api,我有ASP.NETWebAPI 它像这样返回JSON 据我所知,这是Json数组,但我需要返回Json对象,而不是它 如下所示:{“结果”:[{“CompanyID”:1,“CompanyName”:“tit挈挈挈”},{“CompanyID”:5,“CompanyName”:“Ф挈挈挈挈挈挈挈”} 这是我的GetCompanys控制器: public class GetCompaniesController : ApiController { private ApplicationD

我有ASP.NETWebAPI

它像这样返回JSON

据我所知,这是Json数组,但我需要返回Json对象,而不是它

如下所示:
{“结果”:[{“CompanyID”:1,“CompanyName”:“tit挈挈挈”},{“CompanyID”:5,“CompanyName”:“Ф挈挈挈挈挈挈挈”}

这是我的GetCompanys控制器:

public class GetCompaniesController : ApiController
{
    private ApplicationDbContext db = new ApplicationDbContext();

    // GET: api/GetCompanies
    public IQueryable<Companies> GetCompanies()
    {
        return db.Companies;
    }

    // GET: api/GetCompanies/5
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> GetCompanies(int id)
    {
        Companies companies = await db.Companies.FindAsync(id);
        if (companies == null)
        {
            return NotFound();
        }

        return Ok(companies);
    }

    // PUT: api/GetCompanies/5
    [ResponseType(typeof(void))]
    public async Task<IHttpActionResult> PutCompanies(int id, Companies companies)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != companies.CompanyID)
        {
            return BadRequest();
        }

        db.Entry(companies).State = EntityState.Modified;

        try
        {
            await db.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!CompaniesExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return StatusCode(HttpStatusCode.NoContent);
    }

    // POST: api/GetCompanies
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> PostCompanies(Companies companies)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Companies.Add(companies);
        await db.SaveChangesAsync();

        return CreatedAtRoute("DefaultApi", new { id = companies.CompanyID }, companies);
    }

    // DELETE: api/GetCompanies/5
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> DeleteCompanies(int id)
    {
        Companies companies = await db.Companies.FindAsync(id);
        if (companies == null)
        {
            return NotFound();
        }

        db.Companies.Remove(companies);
        await db.SaveChangesAsync();

        return Ok(companies);
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            db.Dispose();
        }
        base.Dispose(disposing);
    }

    private bool CompaniesExists(int id)
    {
        return db.Companies.Count(e => e.CompanyID == id) > 0;
    }
}
公共类GetCompanyController:ApicController
{
私有ApplicationDbContext db=新ApplicationDbContext();
//获取:api/GetCompanies
上市公司()
{
返回数据库公司;
}
//获取:api/GetCompanies/5
[响应类型(公司类型))]
公共异步任务GetCompanys(int id)
{
公司=等待db.companys.FindAsync(id);
如果(公司==null)
{
返回NotFound();
}
返回Ok(公司);
}
//PUT:api/GetCompanies/5
[响应类型(typeof(void))]
公共异步任务公司(int-id,公司)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
if(id!=companys.CompanyID)
{
返回请求();
}
db.Entry(companys).State=EntityState.Modified;
尝试
{
等待db.saveChangesSync();
}
catch(DbUpdateConcurrencyException)
{
如果(!companyesists(id))
{
返回NotFound();
}
其他的
{
投掷;
}
}
返回状态码(HttpStatusCode.NoContent);
}
//职位:api/GetCompanys
[响应类型(公司类型))]
公共异步任务邮政公司(公司)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
db.companys.Add(公司);
等待db.saveChangesSync();
返回CreatedAtRoute(“DefaultApi”,新的{id=companys.CompanyID},companys);
}
//删除:api/GetCompanys/5
[响应类型(公司类型))]
公共异步任务删除公司(int-id)
{
公司=等待db.companys.FindAsync(id);
如果(公司==null)
{
返回NotFound();
}
db.公司。移除(公司);
等待db.saveChangesSync();
返回Ok(公司);
}
受保护的覆盖无效处置(布尔处置)
{
如果(处置)
{
db.Dispose();
}
基地。处置(处置);
}
私有布尔公司存在(内部id)
{
返回db.companys.Count(e=>e.CompanyID==id)>0;
}
}
我需要如何修改我的控制器


Thank's

返回值时,请按如下方式尝试:

public IHttpActionResult GetCompanies()
{
    var companies = db.Companies.ToList();
    return Ok( new { results = companies });
}

使用web api时,返回
IQuarable
IEnumerable
是没有意义的,它们没有可能的优势。使用列表或数组。关于您的问题,您需要
包装结果(您的输出)。对于一个id,它可以工作。对于这个`public IQueryable getcompanys(){return db.companys;}`我需要怎么做?