Contexto
Idioma: C#
Plataforma Versión: Microsoft .Net Framework 4.0
Sistema operativo: Windows 7 Professional (64 bits)
Restricciones: Microsoft MVC.Net 3.0prettified JSON de MVC 3 JsonResult
Problema
me encuentro mirando JSON mucho en estos días un navegador, un navegador apuntando a la una Acción controlador u otro en mi servidor dev local y analizar JS ON visualmente para asegurarnos de que todo está siendo formateado de la manera que queremos. El JSON devuelto por el serializador MVC 3 (o el serializador JSON.Net) siempre devuelven una cadena minified, por lo que terminan con algo como esto:
{"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"}]}
Pregunta
Me gustaría mucho encontrar una manera, al menos durante la depuración, para obtener el JsonResult sea "prettified" para que se vea de la misma familia:
{
"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"
}
]
}
soy consciente de severalonlinetools que te permitirá pegar y formatear JSON. El es un paso extra y me está costando mucho tiempo. Preferiría una solución programática. También me gustaría poder activarlo/desactivarlo a través de la configuración o una directiva #if compilador.
Ya hice una búsqueda superficial al respecto y me encontré con this post on Stack Overflow. Sin embargo, el ejemplo de código dado es bastante incompleto. También hay un par de enlaces proporcionados, pero parecen estar muertos.
En cualquier caso, me gustaría encontrar una manera de obtener JSON "embellecido" de un ActionResult. Cualquier ayuda aprendida
El siguiente código fuente reproducirá la cadena JSON inicial no pretendida que di como ejemplo. Siéntase libre de copiar/pegar/editar.
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; }
}
}
¿Qué hay de usar una extensión de navegador (por ejemplo, https://addons.mozilla.org/en-US/firefox/addon/jsonview/) que automáticamente embellece el contenido de 'application/json'? – pjumble
Tanto la herramienta de desarrollo integrada de Chrome como Firebug ahora tienen un modo de vista previa que automáticamente le da una buena vista jerárquica de JSON devuelto por el servidor. – StriplingWarrior
Hola chicos. Gracias por todas las buenas respuestas. También encontré un Visual Studio Visualizer que te permite formatear JSON dentro de Visual Studio.He jugado un poco con esto y lo tengo trabajando en Studio 2010. http://jsonviewer.codeplex.com/wikipage?title=More%20screen%20shots&referringTitle=Home –