C'è anche un altro libreria chiamata Genson http://code.google.com/p/genson/.
In realtà Genson è più veloce e ha più funzioni di Gson e ha prestazioni vicino a Jackson (ma è molto più leggero) vedere http://code.google.com/p/genson/wiki/Metrics. Utilizza l'API di streaming anziché un modello dom che offre una migliore scalabilità ed è utile nelle applicazioni Web in cui è possibile gestire la conversione man mano che l'input arriva.
Genson è adatto per tutti i tipi di casi d'uso, dalla semplice conversione, alla completa personalizzazione di tutto il processo. È possibile configurare molte cose (utilizzare campi e/o metodi, utilizzare il costruttore con argomenti e senza annotazioni, filtrare le proprietà in base alla visibilità e molto altro). Dovresti dare un'occhiata al wiki.
La sua ultima versione (0.91) è disponibile nel repository centrale di Maven.
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>0.91</version>
</dependency>
Disclaimer: Sono l'autore della biblioteca, ma cerco di essere obiettivo (soprattutto nei parametri di riferimento).
Modifica Alcune parole su Gson e Jackson. Ho usato Jackson per più di 2 anni e un po 'di Gson. La prima cosa da notare è che Jackson è la libreria json/java più veloce là fuori (Gesnon cerca di batterlo ma è piuttosto difficile). Jackson ha anche molte caratteristiche e possibilità di configurazione (la maggior parte basata su annotazioni). Avevo un uso standard e avanzato di Jackson, ed è stato bello fino a quando non avevo bisogno di funzioni che Jackson non aveva fornito. Ho scoperto che la libreria era davvero difficile da estendere (per i miei casi d'uso era impossibile senza riscrivere una grande parte).
Ho quindi provato Gson. La prima cosa da notare su Gson è che non usa getter/setter ma solo i campi! Le sue prestazioni non erano buone (specialmente rispetto a Jackson o Genson). Con le ultime versioni è migliorato in quanto forniscono anche uno streaming API, ma non è ancora abbastanza veloce.All'inizio il suo principale vantaggio era il buon supporto dei generici di Java, ma Jackson e Genson lo forniscono anche. Nota anche che Gson ha meno funzioni fuori dalla scatola di Genson o Jackson. Ho anche provato ad implementare le funzionalità di cui avevo bisogno in Gson, ma ho scoperto che la parte del database Beans non era estendibile (vicino a tutto in una singola classe senza punti di estensione), quindi dovrei riscriverlo. Era fuori discussione e questo è il modo in cui sono finito con la creazione di Genson.
Se non vuoi usare Genson, ti consiglio vivamente Jackson per Gson.
La serializzazione di un POJO è simile a quella di una mappa. Vedi http://stackoverflow.com/questions/11851603/how-to-convert-hashmap-to-json-file/11851693#11851693 –