10 votes

Comment retourner un Json à partir d'une API Web .Net Core ?

C'est une question de base. Je suis nouveau sur ASP.Net Core, donc j'ai créé un projet API Web .Net Core en utilisant le modèle dans Visual Studio 2017 et je voudrais savoir comment retourner une chaîne Json à partir de la fonction Get().

La fonction Get() fournie.

    [HttpGet]
    public IEnumerable Get()
    {
        return new string[] { "valeur1", "valeur2" };
    }

Je voudrais savoir comment modifier pour qu'il retourne une chaîne Json d'une variable int comme suit.

    // GET: api/MOER
    [HttpGet]
    public <> Get()
    {
        _MOER = 32;

        return <>;
    }

J'ai vu le package Nuget Newtonsoft.Json où vous pouvez sérialiser/désérialiser, mais je ne suis pas sûr si c'est toujours applicable avec .Net Core.

J'ai également vu des exemples où ils utilisent JsonResult, mais lorsque j'essaie d'utiliser cette approche, le compilateur ne sait pas ce qu'est Json().

    [HttpGet]
    public JsonResult Get()
    {
        _MOER = 32;

        return Json(_MOER);
    }

Merci pour votre aide!

0 votes

Il semble que vous utilisez le [ApiController], pourquoi ne pas simplement retourner un type IActionResult ?

17voto

HaukurHaf Points 2746

Ajoutez cet attribut à votre classe de contrôleur :

[Produces("application/json")]

Ainsi, cela devient :

[Produces("application/json")]
public class VotreController : Controller {

   [HttpGet]
   public IEnumerable Get()
   {
       return new string[] { "valeur1", "valeur2" };
   }
}

Cela devrait suffire, sinon je crois que par défaut c'est XML (à moins que le client ne demande explicitement du JSON en utilisant l'en-tête HTTP Accept).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X