Tôi có ASP.NET Web APIReturn JSON đối tượng (ASP.NET WebAPI)
Nó trả về cho tôi JSON như thế này
[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]
Như tôi hiểu đây là Json mảng, nhưng tôi cần phải trở về JSON Object thay vì nó
như thế này: {"results":[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]}
đây là bộ điều khiển GetCompanies tôi:
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;
}
}
Tôi cần phải sửa đổi bộ điều khiển của mình bằng cách nào?
Thank của
Khi sử dụng api web, trở về 'IQuarable' hoặc 'IEnumberable' là vô nghĩa và họ không có lợi thế tốt. Hoặc sử dụng một danh sách hoặc một mảng. Về câu hỏi của bạn, bạn cần phải 'wrap' kết quả (đầu ra của bạn). – Arrrr