/ / JSON Parsing w GWT - json, gwt, smartgwt

JSON Parsing w GWT - json, gwt, smartgwt

Korzystamy z Platformy GWT z klientem GWTP i pozostałych usług sieciowych w kontenerze GUICE. Wywołanie usługi reszty z klienta GWT odbywa się za pomocą JSONPRequestbuilder.

Chcę wiedzieć, która jest najlepsza technika analizowania ciągu odpowiedzi JSON dla GWT? - Serializacja / deserializacja JSON do Java

Po wielu poszukiwaniach w Google odkryłem, że mamy tak wiele opcji.

  1. GWT wbudował w JSONParser metodę parseStrict, którajest nazywany zabezpieczonym i najlepszym sposobem. Ale może to nie być odpowiednie dla złożonego ciągu odpowiedzi JSON. Ponieważ musisz napisać dużo kodu, aby przeanalizować każdy element w odpowiedzi JSON i przekonwertować na obiekt Java.
  2. Podejście GWT AutobeanFactory - nie wiem jaknajlepiej tego użyć? Używamy GWT 2.4, w ogóle nie masz pełnego przykładu zastosowania tego podejścia. Wszędzie ludzie mówią, że jest to podejście, ale nie mamy tam szczegółowego opisu tego. Kilka próbek w google pochodziło ze starszych wersji gwt, które zostały bardzo zmienione w GWT 2.4. Proszę, niech ktoś poda dobry przykład z GWT 2.4 i fabrycznym podejściem Autobean dla JSON ser / deser ...
  3. Typy nakładek JavaScript: ludzie mówią, że to nie jest bezpieczna droga. Dlatego waham się, czy powinniśmy tego użyć, czy nie.

Ponadto migrujemy z GWT do SmartGWTwkrótce. Mam nadzieję, że pozostałe usługi połączeń z nimi powinny nadal działać nawet w SmartGWT bez żadnych zmian. (Ponieważ SmartGWT jest również wyposażony w wstępnie zdefiniowany format reszty JSON, którego możemy nie używać, ponieważ już zbudowaliśmy te usługi w ogóle).

Odpowiedzi:

3 dla odpowiedzi № 1

Jeśli potrzebujesz introspekcji (nie masz ścisłego schematu dla obiektów JSNO), użyj JSONParser.
Możesz również użyć nieco łatwiejszego w użyciu interfejsu API, ale w ogóle go nie udokumentować, com.google.web.bindery.autobean.shared.Splittable (dokładniej JsonSplittable w DevMode i JsoSplittable w trybie prod).

Jeśli masz ścisły schemat, użyj typów nakładek JSO lub AutoBean. AutoBean ma niewielki narzut w porównaniu do JSO, ale pozwala na użycie List, Set i Map zamiast JsArray i niestandardowe JSO. AutoBean może być również używany po stronie serwera lub z klientów Java innych niż GWT, przez temu AutoBeanFactorySource. Może to być również przydatne w testach jednostkowych, w których nie potrzebujesz powolności GWTTestCase, w przeciwieństwie do JSO.

Przykład AutoBean można znaleźć w jego oficjalnej dokumentacji: http://code.google.com/p/google-web-toolkit/wiki/AutoBean

Co się tyczy bezpieczeństwo, o ile korzystasz parseStrict (które AutoBean używa pod maską, więc nie martw się), wtedy jesteś „bezpieczny. JSOs” nie będą mniej bezpieczne niż AutoBean lub JSONParser (lub Splittable).