ReVo Blog

Java 9 - Parser JSON, JEP 198

« Older   Newer »
  Share  
.ReVo.
view post Posted on 19/8/2014, 14:45 by: .ReVo.




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
 
Top
0 replies since 19/8/2014, 14:45   16 views
  Share