2009-08-30 25 views
18

Ahora estoy usando asp.net mvc y me pregunto cuál es una mejor opción usando el Json incorporado o Json.Net No estoy seguro si uno tiene una ventaja sobre otro.Asp.net MVC json o Json.net?

Además, si elijo ir por la ruta de Json.Net, ¿debería ir con la versión estable o beta 4? No estoy seguro de cuán inestables son las betas.

Respuesta

10

Puede tener problemas serializing dates with the MVC JSON. Mi respuesta a esa publicación se repite a continuación.

Si no está vinculado al serializador MS JSON, puede utilizar Json.NET. Viene con un IsoDateTimeConverter. Esto serializará las fechas en una cadena formateada ISO 8601.

Por ejemplo, en nuestro proyecto serializando myObject se maneja a través de el siguiente código.

JsonNetResult jsonNetResult = new JsonNetResult(); 
jsonNetResult.Formatting = Formatting.Indented; 
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter()); 
jsonNetResult.Data = myObject; 

Si decide tomar el Json.NET sumergen que también querrá agarrar JsonNetResult ya que devuelve un ActionResult que se puede utilizar en aplicación ASP.NET MVC. Es bastante fácil de usar.

Para más información ver: Good (Date)Times with Json.NET

está usando actualmente Json.NET v3.5 Beta 4 y no hemos encontrado problemas. Sin embargo, realmente no hemos gravado nuestro sistema ya que aún no ha entrado en producción. Su millaje puede variar según la cantidad de marco que esté utilizando.

Espero que esto ayude.

6

Mi idea es que no he encontrado ningún problema con horneado en Json. Sugeriría ir con eso hasta que encuentres algo que no funciona. Menos dependencias simplifican la depuración.

+1

Totalmente de acuerdo. Json.net es una biblioteca muy buena, pero a menos que requiera funciones fuera de las opciones de .NET es solo una dependencia innecesaria que debe administrar. – jswanson

1

En el pasado he trabajado con una biblioteca .NET JSON que utilizaba un método de exclusión o exclusión para indicar qué miembros de una clase están serializados. Al revisar la aplicación de ejemplo NerdDinner, veo una clase en el SearchController llamada JsonDinner que parece una clase regular de Cena, pero parece estar en existencia solo para dar salida correctamente a algunos detalles adicionales que podrían argumentarse solo relacionados con la vista y no relacionados con el modelo. caracteristicas. En este caso simple, un mecanismo de notación de atributos en el modelo, que identifica las piezas que se serializarán en JSON, daría como resultado una cantidad reducida de código mantenido manualmente.

Cuestiones relacionadas