ReVo Blog


Friends

Friends Posts

profile for Marco Acierno at Stack Overflow, Q&A for professional and enthusiast programmers
profile for Marco Acierno on Stack Exchange, a network of free, community-driven Q&A sites
1 user(s) online
F_ACTIVE
1 guests
0 members
0 Anonymous Members
[ View Complete List ]


Last comments


Statistics
F_STATS
ReVo Blog have:
8 articles, 0 comments, 1 members,
167 total visits, 0 monthly visits

The newest member is .ReVo.


B_NORM    
view post Posted on 19/8/2014, 14:45 by: .ReVo. Reply
Sembra che per Java 9 sarà integrato un parser JSON all'interno del framework stesso, ottima notizia no?

Beh, no.

Lo scopo di questo parser è quello di offrire un soluzione leggera e semplice per JSON e la frase

CITAZIONE
There are existing JSON APIs for Java. The most popular of these generally offer more functionality than the planned API and/or don't take advantage of Java 8/9 language and library features.

lo conferma. Le alternative di cui parla sono (le più famose): Gson e Jackson.

Leggendo la pagina ufficiale qui possiamo farci un'idea di come vorrebbero realizzarlo.

La mia domanda è: Perché?

Perché aggiungere un'altra alternativa al parsing JSON quando Gson e Jackson fanno già un ottimo lavoro? Certo, avere una soluzione integrata rimuovere la necessità di utilizzare una libreria esterna, ma perché realizzarla partendo già con l'idea che sarà inferiore alle alternative? Al momento, Gson fa un ottimo lavoro quando c'è bisogno di lavorare con JSON semplici:

CODICE
User user = new Gson().fromJson(json/reader, User.class);


Fatto! Il JSON è stato convertito nell'oggetto User senza fare altro!

È possibile realizzare un API che renda questo passaggio ancora più semplice?

E se i nomi dei campi JSON sono diversi da quelli della classe?

Basta mettere

CODICE
@SerializedName(nome_nel_json)


sopra il nostro campo ed il problema è risolto! (per non parlare delle altre annotazioni come Since, Until, Expose)

E se il vostro JSON diventa sempre più complesso, lavorare direttamente con il deserializer è praticamente un gioco da ragazzi!

Personalmente spero che non venga realizzato sulla stessa linea dei parser XML come SAX (ad eventi, come parla anche la pagina sul JSON) o DOM (che io apprezzo) in modo da evitare di dover aggiungere altra spazzatura all'interno della JDK (e poi essere costretti a mantenerla viva).

Ma dai, mancano ancora molti anni prima che potremmo avere Java 9 quindi speriamo bene.

Edited by .ReVo. - 19/8/2014, 18:06

Tags:
java,
java9
Comments: 0 | Views: 16Last Post by: .ReVo. (19/8/2014, 14:45)
 

Search: