2009-08-30 24 views
18

Ora sto usando asp.net mvc e mi chiedo quale sia una scelta migliore usando il JSON integrato o Json.Net Non sono sicuro che uno abbia un vantaggio rispetto ad un altro.Asp.net MVC json o Json.net?

Anche se scelgo di seguire il percorso di Json.Net, allora dovrei andare con la versione stabile o beta 4? Non sono sicuro di quanto siano instabili i beta.

risposta

10

Potresti avere problemi serializing dates with the MVC JSON. La mia risposta a quel post è ripetuta di seguito.

Se non si è collegati al serializzatore MS JSON, è possibile utilizzare Json.NET. Viene fornito con un IsoDateTimeConverter. Questo serializzerà le date in una stringa formattata ISO 8601.

Ad esempio, nel nostro progetto serializzare myObject viene gestito tramite il seguente codice.

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

Se si decide di prendere l'Json.NET tuffo dovrete anche per afferrare JsonNetResult in quanto restituisce un ActionResult che può essere utilizzato in un'applicazione ASP.NET MVC. È piuttosto facile da usare.

Per maggiori informazioni visita: Good (Date)Times with Json.NET

Attualmente stiamo utilizzando Json.NET v3.5 Beta 4 e non abbiamo incontrato problemi. Tuttavia, non abbiamo realmente tassato il nostro sistema in quanto non è ancora entrato in produzione. Il tuo chilometraggio può variare a seconda di quanto del framework che stai utilizzando.

Spero che questo aiuti.

6

Il mio pensiero è che non ho trovato alcun problema con cotto in Json. Suggerirei di andare con quello finché non trovi qualcosa che non funziona. Un numero minore di dipendenze rende più semplice il debug.

+1

Totalmente d'accordo. Json.net è una libreria davvero bella ma a meno che non si richiedano funzionalità al di fuori delle opzioni .NET, è solo una dipendenza non necessaria che è necessario gestire. – jswanson

1

In passato ho lavorato con una libreria JSON .NET che utilizzava un metodo opt-in o opt-out per indicare quali membri di una classe sono serializzati. Nel rivedere l'applicazione di esempio NerdDinner vedo una classe nel SearchController chiamata JsonDinner che assomiglia ad una normale classe Dinner, ma sembra esistere solo per produrre correttamente alcuni dettagli extra che potrebbero essere discussi solo relativi alla vista e non veramente correlati al modello Caratteristiche. In questo semplice caso, un meccanismo di notazione degli attributi sul modello, che identifica i pezzi da serializzare su JSON, comporterebbe una quantità ridotta di codice manutenuto a mano.

Problemi correlati