web-dev-qa-db-fra.com

Comment sortir la chaîne Json en tant que JsonResult dans MVC4?

Cela semble si simple que je dois y penser trop.

TL; DR;

Comment puis-je modifier le code ci-dessous pour renvoyer l'objet json contenu dans la chaîne plutôt qu'une chaîne contenant justement json?

public ActionResult Test()
{
  var json_string = "{ success: \"true\" }";
  return Json(json_string, JsonRequestBehavior.AllowGet);
}

Ce code renvoie un littéral de chaîne contenant le json:

"{ success: "true" }"

Cependant, je voudrais qu'il retourne le json contenu dans la chaîne:

{ success: "true" }

version légèrement plus longue

J'essaie de prototyper rapidement certains appels d'api externes et je veux juste passer ces résultats via mon "api" comme une fausse réponse pour l'instant. L'objet json n'est pas trivial - quelque chose de l'ordre de 10 000 "lignes" ou 90 Ko. Je ne veux pas créer d'objet (s) fortement typé (s) pour tout le contenu de cette réponse json juste pour que je puisse l'exécuter via un désérialiseur - donc c'est sorti.

La logique de base de mon contrôleur est donc:

  1. Appeler l'api externe
  2. Stocker le résultat de la chaîne de la demande Web dans un var (voir json_string ci-dessus)
  3. Générer ces résultats sous la forme json (pas une chaîne) à l'aide de la méthode de production JsonResult Json ()

Toute aide est grandement appréciée ... l'esprit fond.

27
longda

L'intérêt de la méthode d'assistance Json() est de sérialiser en JSON.

Si vous souhaitez retourner du contenu brut, faites-le directement:

return Content(jsonString, "application/json");
47
SLaks
public ActionResult Test()
{
  return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
43
Andrés Nava - .NET