Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Kripton: persistenza su file system

Analizziamo l'utilizzo della libreria Kripton per la conversione di oggetti Java in diversi formati e viceversa.
Analizziamo l'utilizzo della libreria Kripton per la conversione di oggetti Java in diversi formati e viceversa.
Link copiato negli appunti

Kripton consente di rendere persistenti le istanze di una particolare classe con
l'annotazione @BindType. Prendiamo ad esempio la classe User così definita:

@BindType
public class User {
    public long id;
    public String name;
    public String username;
    public String email;
    public String phone;
    public String website;
}

L'annotazione @BindType viene utilizzata dal processore di annotazione di Kripton per generare il codice necessario a convertire
gli oggetti di tipo Java nei formati dati supportati da Kripton e viceversa. I formati supportati da Kriptono sono: JSON, XML,
YAML, CBOR, (Java) properties e SMILE. Il codice per convertire un oggetto User in formato JSON è:

User user = new User();
user.name = "name1";
user.email = "dummy@gmail.com";
user.id=1;
user.phone="032123456";
user.website="http://www.html.it";
String file=context.getFilesDir().getPath()+"/test.json";
BinderContext binder = KriptonBinder.jsonBind();
binder.serialize(user, new File(file));

Il risultato del codice è che nel file test.json verrà inserita la rappresentazione nel formato JSON dell'istanza dell'oggetto user.

{"email":"dummy@gmail.com","id":1,"name":"name1","phone":"032123456","website":"http://www.html.it"}

Vediamo ora il codice per leggere da un file di tipo JSON la rappresentazione di un oggetto di tipo User:

String file=context.getFilesDir().getPath()+"/test.json";
BinderContext binder = KriptonBinder.jsonBind();
// nella conversione dobbiamo specificare il tipo di oggetto che vogliamo convertire
User user2=binder.parse(new File(file), User.class);

Kripton gestisce la conversione di tutti gli attributi di tipo primitivo, stringhe, array, collezioni di oggetti e
singoli oggetti
annotati con annotazione @BindType. E' inoltre possibile raffinare la conversione di un particolare file mediante
l'annotazione @Bind.

Kripton: conversione di altri formati dati

Nella sezione precedente abbiamo visto come sia possibile convertire un oggetto Java in JSON e viceversa con Kripton.
Come è
possibile osservare dal codice associato, la conversione di oggetti Java da e verso i vari formati dati avviene
mediante la creazione di un BinderContext istanziabile dalla classe KriptonBinder.

Esiste un binder per ogni tipo di formato dati supportato da Kripton. Di base, Kripton offre i contesti di
conversione per i formati JSON ed XML.

Per gli altri formati dati supportati da Kripton è necessario includere il relativo artifact e utilizzare il relativo
BinderContext. Per convertire un oggetto Java in formato YAML è necessario scrivere:

// inizializziamo il contesto YAML
    BinderContext binder = KriptonBinder.bind(BinderType.YAML);
    binder.serialize(user, new File(file));

Per l'operazione inversa è sufficiente scrivere:

// inizializziamo il contesto YAML
    BinderContext binder = KriptonBinder.bind(BinderType.YAML);
    binder.parse(new File(file), User.class);

Per tutti gli altri formati, il codice per la conversione è praticamente identico, quello che cambia è il tipo di
contesto di binding.

Formato dati Libreria da includere BinderContext
JSON BinderType.JSON
XML BinderType.XML
YAML com.abubusoft:kripton-dataformat-yaml:3.1.0 BinderType.YAML
CBOR com.abubusoft:kripton-dataformat-cbor:3.1.0 BinderType.CBOR
PROPERTIES com.abubusoft:kripton-dataformat-properties:3.1.0 BinderType.PROPERTIES
SMILE com.abubusoft:kripton-dataformat-smile:3.1.0 BinderType.SMILE

Kripton consente di gestire la conversione in tutti questi formati grazie al fatto che si basa su
un'altra libreria Java open source multi formato: FasterXML-jackson.


Ti consigliamo anche