2009-08-30 16 views
18

Ich benutze jetzt asp.net mvc und frage mich, was ist eine bessere Wahl mit dem eingebauten Json oder Json.Net Ich bin mir nicht sicher, ob man einen Vorteil gegenüber einem anderen hat.Asp.net MVC Json oder Json.net?

Auch wenn ich die Route von Json.Net nach unten gehe, sollte ich dann mit der stabilen Version oder Beta 4 gehen? Ich bin mir nicht sicher, wie instabil die Betas sind.

Antwort

10

Möglicherweise haben Sie Probleme serializing dates with the MVC JSON. Meine Antwort auf diesen Beitrag wird unten wiederholt.

Wenn Sie nicht an den MS JSON-Serializer gebunden sind, können Sie Json.NET verwenden. Es kommt mit einem IsoDateTimeConverter. Dies wird Daten in eine ISO 8601 formatierte Zeichenfolge serialisieren.

Zum Beispiel wird in unserem Projekt serialisieren myObject über den folgenden Code behandelt.

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

Wenn Sie die Json.NET nehmen tauchen Sie auch JsonNetResult wollen werden, wie es gibt eine Action greifen, die in ASP.NET MVC-Anwendung verwendet werden kann. Es ist ziemlich einfach zu bedienen.

Für weitere Informationen siehe: Good (Date)Times with Json.NET

Wir sind zur Zeit Json.NET v3.5 Beta 4 und haben Probleme nicht auf. Wir haben jedoch unser System nicht wirklich besteuert, da es noch nicht in Produktion gegangen ist. Ihr Kilometerstand kann abhängig davon variieren, wie viel von dem Rahmen Sie verwenden.

Hoffe, das hilft.

6

Mein Gedanke ist, dass ich keine Probleme mit gebacken in Json gefunden habe. Ich würde vorschlagen, damit zu gehen, bis Sie etwas finden, das nicht funktioniert. Weniger Abhängigkeiten machen das Debuggen einfacher.

+1

Stimme völlig zu. Json.net ist eine wirklich nette Bibliothek, aber wenn Sie keine Features außerhalb der .NET-Optionen benötigen, ist dies nur eine unnötige Abhängigkeit, die Sie verwalten müssen. – jswanson

1

In der Vergangenheit habe ich mit einer .NET JSON-Bibliothek gearbeitet, die eine Opt-In oder Opt-Out-Methode verwendet, um anzugeben, welche Mitglieder einer Klasse serialisiert werden. Bei der Überprüfung der NerdDinner-Beispielanwendung sehe ich eine Klasse im SearchController namens JsonDinner, die wie eine reguläre Dinner-Klasse aussieht, aber nur existiert, um ein paar zusätzliche Details auszugeben, die nur View-bezogen und nicht wirklich modellbezogen sein könnten Eigenschaften. In diesem einfachen Fall würde ein Attributnotationsmechanismus auf dem Modell, der die Stücke identifiziert, die zu JSON serialisiert werden müssen, zu einer verringerten Menge von manuell verwaltetem Code führen.