Andrei Ermicioi's Blog

Just another WordPress.com weblog

GSON – Json in Java world from Google

Saptamina aceasta am citit o noutate despre un nou realise beta a bibliotecii GSON pentru transformarea biderictionala a classelor Java in JSON notatii. Deci am reusit sa scriu despre acesta creatie de la gigantul software Google.
JSON este Java Script Object Notation, cu alte cuvinte este o reprezentare a obiectelor in JavaScript, pe linga obiecte mai pot fi reprezentate si alte tipuri de date. Acest link, http://www.json.org/, va vorbi mai mult despre JSON.
toJson(), fromJson() – simplitate la maxim pentru convertirea obiectelor in Json notatie si viceversa, acesta este primul punct forte al proiectului. Printre alte puncte forte se numara lipsa necistati de a avea acces la codul sursa a claselor Java, Java Generics, reprezentarea flexibila a obiectelor, etc.
Sa punem la cale un mic proiect.

class NewObject {
private int x = 1, y = 10, z = 100;
public NewObject() {
}
}

in notatia javascript, lugimea sirului de caractere (String) l-am obtinut 0. Probabil totusi fara un ritual nu se va scapa 😦
Conversia inapoi la obiecte Java s-a ispravit, ce drept erau de tip primitiv πŸ™‚

String sLong = g.toJson(new Long(847));
Long l = g.fromJson(sLong, Long.class);
System.out.println(l instanceof Long);

la afisare am primit true πŸ™‚
Dupa cum ne zice Gson User Guide (http://sites.google.com/site/gson/gson-user-guide) conversia colectiilor Java se pot face astfel,

Gson gson = new Gson();
Collection ints = Lists.immutableList(1,2,3,4,5);
String json = gson.toString(ints);

iar procesul invers ar fi

Type collectionType = new TypeToken>(){}.getType();
Collection ints2 = gson.fromJson(collectionType, json);

User guide-ul mai arata citeva exemple de transformare in JSON notatie si invers a claselor generice, afisare de cod JSON in forme diferite, prety si compact.
Unii s-ar intreba pentru ce ne trebuie JSON, sunt multe situatii in care JSON poate fi util. Pot da doua exemple:
1. Pastrarea in fisier a informatiei. Da este XML, dar pastrind in formatul JSON obtinem dimensiuni mai mici comparativ cu XML.
2. Comunicare client-server. Iaras putem zice ca exista XML, dar exista si JSON.
In concluzie pot zice ca biblioteca merita atentie, iar faptul ca n-am reusit sa convertesc o simpla clasa in reprezentare necesara s-a datorat faptului ca poate undeva am gresit sau pe undeva au survenit niste erori (nu e perfect, e in curs de dezvoltare), sau eu nu i-am placut bibliotecii πŸ™‚

Advertisements

Written by eraniblog

April 20, 2010 at 11:49

Posted in Coding

Tagged with , , ,

%d bloggers like this: