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:

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche