2009-02-11 10 views
17

JavaScriptSerializer nie jest przestarzały po .net 3.5 SP1. Czy powinienem używać JavaScriptSerializer lub wcześniej zalecanego DataContractJsonSerializer ?. Również dlaczego był przestarzały?Dlaczego program MicrosoftServiceizer sprawił, że JavaScriptSerializer stał się przestarzały przed .NET 3.5 SP1 i ponownie aktywny po tym?

+1

Aby dodać więcej - JavaScriptSerializer i DataContractJsonSerializer nie zawsze są kompatybilne z każdym innym (DateTime, IIRC, to ból). –

Odpowiedz

12

Z przyjemnością skorzystam z JavaScriptSerializer - ale w razie wątpliwości rozważ trzecią opcję - Json.NET. Ponieważ jest to trzecia strona, nie ma ona związku z decyzjami MS ... Oczywiście jest to miecz obosieczny - ale często łatwiej jest uzyskać drobną poprawkę zastosowaną do samodzielnej biblioteki strony trzeciej.

+0

Przepraszam, musiałem umieścić to tutaj w komentarzach, ale używając '.net 2.0 asmx service' w którą stronę powinienem iść' DataContractJsonSerializer', 'JavaScriptSerializer' lub 'http: // jayrock.berlios.de' Nie wiem jeśli JSON.net jest 2.0 zgodny. Właśnie budujemy system widgetów i przekazujemy widżety jako dane JSON z webmethods. – Deeptechtons

+0

@Deeptechtons well, JavaScriptSerializer nie jest opcją w wersji 2.0, ani nie jest DataContractJsonSerializer. Szczerze mówiąc, DataContractJsonSerializer ma tendencję do produkowania nietypowego json. Chciałbym albo: uaktualnić do 3.5/4.0 i użyć JavaScriptSerializer, albo sprawdzić, czy JSON.net itp. Są przyjazne 2.0 –

+0

dziękuję i btw to JSON - RPc inaczej niż zwracający obiekt webmethods? Http: //stackoverflow.com/questions/9291423/json-rpc-library-for-use-with-net – Deeptechtons

6

Nie widziałem ostatecznego wyjaśnienia. Podczas JavaScriptSerializer przestało działać sporo osób.

Scott Gu wykonał na swoim blogu this comment, mówiąc, że uznanie go za przestarzałe nie ma sensu.

JavaScriptSerializer jest obecnie oznaczony jako przestarzały - chociaż nie jestem pewien dlaczego (chciał zapytać kogoś o tym dzisiaj). Jest bardzo przydatny. Zauważ, że przestarzałe nie oznacza usunięcia w .NET 3.5 - będzie obsługiwane co najmniej w innej wersji lub dwóch (lub dłużej, jeśli uda mi się je przekonać).

Chyba nie może on przekonać ich :-)

ja nadal używać JavaScriptSerializer jak jej znacznie bardziej proste niż DataContractJsonSerializer.

+2

Ponieważ zespół MVC używa JavaScriptSerializer tak mocno, jest mało prawdopodobne, że zostanie upuszczony w przyszłości, ponieważ MVC pochwycił taki pożar. –

+0

Oczywiście [webAPI używa Json.Net] (https://blogs.msdn.microsoft.com/henrikn/2012/02/17/using-json-net-with-asp-net-web-api/) w standardzie . Tak więc Microsoft nie jest już powiązany z wykorzystaniem żadnej z tych technologii. Wierzę, że mówi się o łączeniu technologii web api z MVC, więc jak długo ta zależność jest nadal utrzymywana, jest teraz wątpliwa. IMO Json.Net wygrywa za każdym razem. – Liam

Powiązane problemy