Kontext
Sprache: C#
Platform Version: Microsoft .NET Framework 4.0
Betriebssystem: Windows 7 Professional (64-bit)
Constraints: Microsoft MVC.Net 3.0Get Verschönerte JSON von MVC 3 JsonResult
Problem
ich mich in diesen Tagen eine Menge in einem Browser auf JSON suchen finden, einen Browser an einem Controller Aktion oder eine andere auf meinem lokalen dev-Server zeigen und JS Parsen ON visuell, um sicherzustellen, dass alles so formatiert wird, wie wir es möchten. Die JSON durch die MVC 3 Serializer (oder die JSON.Net Serializer) zurück immer geben eine minimierte String, so dass ich aufzuwickeln mit etwas wie folgt aus:
{"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"}]}
Frage
ich wirklich möchte einen Weg finden, zumindest während der Fehlersuche, die JsonResult zu sein „prettified“ zu bekommen, so dass es wie folgt aussieht:
{
"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"
}
]
}
ich bin mir dessen bewusst severalonlinetools, mit dem Sie JSON einfügen und formatieren können. Das ist ein zusätzlicher Schritt und kostet mich viel Zeit. Ich würde eine programmatische Lösung bevorzugen. Ich möchte auch in der Lage sein, es über die Konfiguration oder eine # if Compiler-Direktive ein-/auszuschalten.
Ich habe bereits eine oberflächliche Suche diesbezüglich durchgeführt und stolpere auf this post on Stack Overflow. Das angegebene Codebeispiel ist jedoch ziemlich unvollständig. Es gibt auch ein paar Links zur Verfügung gestellt, aber sie scheinen tot zu sein.
In jedem Fall würde ich gerne einen Weg finden, "verschönerte" JSON aus einem ActionResult zu bekommen. Irgendwelche Hilfe appredciated.
Der folgende Quellcode reproduziert die ursprüngliche, nicht verschönerte JSON-Zeichenfolge, die ich als Beispiel angegeben habe. Fühlen Sie sich frei zu kopieren/einfügen/bearbeiten.
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; }
}
}
Wie wäre es mit einer Browser-Erweiterung (z. B. https://addons.mozilla.org/en-US/firefox/addon/jsonview/), die automatisch den Inhalt von "application/json" verschönert? – pjumble
Das integrierte Entwicklungstool von Chrome und Firebug verfügen jetzt über einen Vorschaumodus, der automatisch eine gute hierarchische Ansicht von JSON bietet, die vom Server zurückgegeben wurde. – StriplingWarrior
Hey Leute. Danke für all die tollen Antworten. Ich habe auch einen Visual Studio Visualizer gefunden, mit dem Sie JSON in Visual Studio formatieren können.Ich habe damit ein bisschen gespielt, und es funktioniert in Studio 2010. http://jsonviewer.codeplex.com/wikipage?title=More%20screen%20shots&referringTitle=Home –