Obtenez de l'Embellie JSON de MVC 3 JsonResult
Contexte
Langage: C#
Version De La Plateforme: Microsoft .Net Framework 4.0
Système d'exploitation: Windows 7 Professional (64 bits)
Contraintes: Microsoft MVC.Net 3.0
Problème
Je me surprends à regarder JSON beaucoup dans un navigateur ces jours-ci, en pointant d'un navigateur à un Contrôleur de l'Action ou de l'autre sur mon local serveur de dev et le parsing JSON visuellement pour s'assurer que tout est formaté de la façon dont nous voulons. Le JSON renvoyé par la MVC 3 sérialiseur (ou l'JSON.Net sérialiseur) toujours retourner une chaîne compacte, donc je me retrouve avec quelque chose comme ceci:
{"Bars":[{"Name":"Ghost Bar","Address":"2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219","OpenDate":"\/Date(1208062800000)\/","Status":"Open"},{"Name":"M-Street Bar","Address":"5628 Sears Street, Dallas, TX 75206","OpenDate":"\/Date(1064811600000)\/","Status":"Closed"},{"Name":"Zephyr\u0027s Lounge","Address":"3520 Greenville Avenue, Dallas, TX 75206","OpenDate":"\/Date(981007200000)\/","Status":"Open"}]}
Question
J'aimerais vraiment trouver une solution, au moins pendant le débogage, pour obtenir le JsonResult être "embellie" de sorte qu'il ressemble plus à ceci:
{
"Bars": [
{
"Name": "Ghost Bar",
"Address": "2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219",
"OpenDate": "\/Date(1208062800000)\/",
"Status": "Open"
},
{
"Name": "M-Street Bar",
"Address": "5628 Sears Street, Dallas, TX 75206",
"OpenDate": "\/Date(1064811600000)\/",
"Status": "Closed"
},
{
"Name": "Zephyr\u0027s Lounge",
"Address": "3520 Greenville Avenue, Dallas, TX 75206",
"OpenDate": "\/Date(981007200000)\/",
"Status": "Open"
}
]
}
Je suis conscient de plusieurs en ligne outils qui vous permettra de coller et le format JSON. Le est une étape supplémentaire, et me coûte beaucoup de temps. Je préfère une solution de programmation. Je tiens également à être en mesure de l'activer/désactiver via la configuration ou un #si la directive de compilation.
Je l'ai déjà fait une rapide recherche à ce sujet et pour trouver ce post sur Stack Overflow. Toutefois, le code de l'exemple est tout à fait incomplète. Il ya aussi un couple de liens fournis, mais ils semblent être morts.
En tout cas, j'aimerais trouver un moyen d'obtenir "l'embellie" JSON d'un ActionResult. Toute aide appredciated.
Le code source suivant reproduit l'initiale de l'onu-embellie chaîne JSON que j'ai donné comme un exemple. N'hésitez pas à copier/coller/modifier.
using System.Collections.Generic;
using System.Text;
using System.Web.Mvc;
namespace PrettyJsonResult.Controllers
{
public class DefaultController : Controller
{
public JsonResult Index()
{
var foo = new Foo();
foo.Bars.Add(new Bar { Address = "2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219", Name = "Ghost Bar", Status = "Open" });
foo.Bars.Add(new Bar { Address = "5628 Sears Street, Dallas, TX 75206", Name = "M-Street Bar", Status = "Closed" });
foo.Bars.Add(new Bar { Address = "3520 Greenville Avenue, Dallas, TX 75206", Name = "Zephyr's Lounge", Status = "Open" });
return Json(foo, "application/json", Encoding.UTF8, JsonRequestBehavior.AllowGet);
}
}
public class Foo
{
public Foo()
{
Bars = new List<Bar>();
}
public List<Bar> Bars { get; set; }
}
public class Bar
{
public string Name { get; set; }
public string Address { get; set; }
public string Status { get; set; }
}
}
- Que penser de l'utilisation d'un navigateur-extension (par exemple, addons.mozilla.org/en-US/firefox/addon/jsonview) qui automatiquement prettifies
application/json
contenu? - Chrome intégré dans l'outil de dev et Firebug maintenant avoir un mode de prévisualisation qui vous donne automatiquement une belle vue hiérarchique de JSON retourné par le serveur.
- Hé les gars. Merci pour toutes ces excellentes réponses. J'ai aussi trouvé un Visual Studio Visualizer qui vous permet format JSON dans Visual Studio. J'ai joué avec elle un peu, et avoir de travail en Studio 2010. jsonviewer.codeplex.com/...
Vous devez vous connecter pour publier un commentaire.
Pas beaucoup de réponse, mais si vous passez votre sérialiseur Json à partir de l'intégré dans un (JavaScriptSerializer) à Json.NET (qui a un tas de avantages - delà de cette question), vous pouvez faire quelque chose comme ceci :
Docs sur les paramètres ici : http://james.newtonking.com/projects/json/help/
DataContractSerializer
. Il estJavaScriptSerializer
.Pragmatique et utile pour toutes les situations:
Utiliser chrome + cette extension: https://chrome.google.com/webstore/detail/chklaanhfefbnpoihckbnefhakgolnmc
ce sera à peu-format JSON quand il se rend compte qu'il est json.