2012-06-29 17 views
16

Co lepiej użyć, jeśli chodzi o kodowanie i dekodowanie JSON w .NET? Próbowałem zarówno do tej pory JsonConvert wydaje się robić dobrą robotę. Używałem JavaScriptSerializer w przeszłości pomyślnie, ale miałem pewne problemy w niedawnej przeszłości z nim. Czy lepiej używać JSON.NET niż klasy .NET?JSON.NET JsonConvert vs .NET JavaScriptSerializer

Jakie są preferowane funkcje kodowania/dekodowania json przy użyciu odpowiedniej biblioteki? Używam SerializeObject/DeSerializeObject z JSON.NET i Serialize/DeSerialize z .NET.

Dzięki

+0

Nie jest [dobre porównanie tutaj] (http://www.servicestack.net/mythz_blog/?p=344) pod względem szybkości. Nawet po przeczytaniu tego artykułu użyłem Newtonsoft.Json, ponieważ wykonałem dla mnie przyzwoitą pracę. – toske

Odpowiedz

27

myślę this jest dokładnie taki rodzaj porównania szukasz.

To w zasadzie mówi, że JSON.Net jest lepsza, ponieważ między innymi ...

  • Czy szybciej
  • Has LINQ do wsparcia JSON
  • Czy JSON do konwertowania i od XML

Moim zdaniem jedynym pozytywnym (i jest to mały pozytyw), widzę dla wbudowanego serializera, że ​​nie ma żadnej zewnętrznej zależności do zarządzania.

Edit: CodePlex jest zamykany jeden dzień, dzięki czemu można znaleźć porównanie here jak również, po prostu szukaj „Porównanie funkcji” na stronie.

+0

_Jesteś szybszy_ Czy testowałeś to? Próbowałem z .NET 4.5.2 i Json.NET 9.01 i nie jest wcale szybszy niż JavaScriptSerializer. Statystyki prędkości na oficjalnej stronie odnoszą się do JSON.NET 5 ... trochę przestarzałe! – krlzlx

+1

@krlzlx .Net 4.5.2 został wydany w maju 2015 r., A JSON.Net 9.01 kilka miesięcy temu, gdy pisałem tę odpowiedź 3 lata temu w 2013 r. Dlaczego nie podajesz zaktualizowanej odpowiedzi ze swoimi danymi zamiast być złośliwym ! – Haohmaru

+0

Przykro mi, ale wiem, że twoja odpowiedź pochodzi z 2013 roku. Ale nie dostarczyłeś żadnych danych poza tymi na stronie Json.NET. Byłem rozczarowany, kiedy to testowałem. To wszystko. – krlzlx

9

Przez bardzo długi czas moja aplikacja korzystała z JavascriptSerializer i nie widziałem prawdziwego powodu do migracji. Nawet jeśli porównania wydajności mają ogromny procentowy wzrost, mówimy o milisekundach.

Ale jest jeden bardzo dobry powód do migracji: JavascriptSerializer nie jest dostępny w .Net Core bo to część System.Web więc jeśli używasz JavascriptSerializer, utkniesz i muszą migrować do Json.NET

+1

to dobry punkt do rozważenia +1 – Haohmaru