XML a JSON ?

0

Witam!

W mojej aplikacji webowej używam JSON-a. Wszystko wyglada ladnie, jest szybko i w ogole. 0 problemów. Ale naszla mnie taka dygresja. Podgladajac zapytania np. YouTube do serwerów widzialem ze wszystkie dane sa zwracane w postaci XML.

Dlaczego? Jest szybciej sparsować XML czy JSON ? Z tego co mi wiadomo to XML musi byc wolniejszy ponieważ musimy użyć XMLDom do parsowania i konwersji na XML Object. A JSON (pomijajac kwestie bezpieczenstwa takiego rozwiazania) wystarczy eval... Widzial ktos moze jakies benchmarki porownujace wydajnosc ?

Co wybrać ? Dlaczego wiekszosc duzych serwisow typu YouTube uzywa akurat XML?

Zaslyszalem w necie ze dane w XML latwiej przeksztalcic w kod HTML na strone uzywajac XSLT, bo w JSON na dluzsza mete przydalo by sie uzyć jakichś szablonów do budowania HTML na podstawie danych. (Nie wiem czy mowie dobrze). Ma ktos jakies doswiadczenia pod tym wzgledem?

Nie chciałbym zeby to byla wojna co lepsze a co nie. Chcialbym poznać wszystkie zalety i wady obu rozwiazan :)

0

XML - standard
JSON - nie standard

Na poważnie. XML jest znacznie bardziej elastyczny. Wiele protokołów komunikacyjnych opiera się o XML ponieważ jest on standardem. Co do szybkości to tradycyjnie zależy. JSON jest szybszy w javascript, ale już w Javie znacznie lepiej działa XML. Sam XML można parsować na kilka sposobów. DOM, SAX, StAX różnią sie sposobem obróbki pliku. DOM tworzy obiekty. SAX przetwarza dokument w oparciu o zdarzenia. StAX jest strumieniowy. Zatem szybkość zależy tez od użytego parsera.
Co do przekształcania XML na HTML to masz rację. Używamy do tego XSLT. W przypadku JSON należało by napisać parser, który przetworzył by obiekty na odpowiednie gałęzie DOM, a następnie serializować to do HTML. Da się, ale po co tak skoro jest XSLT?

Co do wad i zalet... Chyba tu dużo zależy od kontekstu. Niewątpliwie JSON sprawdza się tam, gdzie trzeba przesyłać dane i w użyciu jest (powolny) javascript. Jeżeli jednak miałbym łączyć dwie aplikacje kompilowane to użyłbym XMLa.

0

Ja korzystam z XML'a i przerabiam go w JS na JSON. Bo JSON jest łatwo dostępny z poziomu JS, a XML jest bardziej ustandaryzowany i wg mnie bardziej przejrzysty.

0

XML jest bardziej uniwersalny, bardziej przenośny i czasami bardziej zrozumiały.

Natomiast jeśli chodzi o komunikację klient-serwer, to jeśli klient ma być przeglądarką internetową i wykorzystywać JavaScript, to nie ma nic lepszego od JSON. Jego kompaktowość pozwala na zwiększenie szybkości przesyłania danych, a natywność i zgodność z JS pozwala na równie szybkie dekodowanie. Co najważniejsze, jest to znacznie prostsze niż parsowanie XML'a.

0

Polecam świetną analizę przesyłu danych klient-serwer
http://code.flickr.com/blog/2009/03/18/building-fast-client-side-searches/

0

Gdyby była potrzeba to mam tutaj link do konwertowania z XML do JSON

http://cms.technalab.com/?p=13

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1