Return JSON object (ASP.NET WebAPI)
86,492
When returning a value, try it like this:
public IHttpActionResult GetCompanies()
{
var companies = db.Companies.ToList();
return Ok( new { results = companies });
}
Author by
Admin
Updated on March 21, 2020Comments
-
Admin about 4 years
I have ASP.NET Web API
It returns me JSON like this
[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]
As I understood this is Json array, but I need to return JSOn Object instead of it
Like this:
{"results":[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]}
Here is my GetCompanies controller:
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; } }
How I need to modify my controller?
Thank's