Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
Scopul acestui tutorial este de a vă familiariza cu API-ul pus la dispozitie de catre biblioteca Jackson pentru citirea si scrierea fisierelor in format JSON.
JSON (JavaScript Object Notation) este un format de reprezentare si interschimb de date intre aplicatii. Acesta este un format text, usor de inteles de om, cat si usor de parsat pentru calculator.
Exemplu de fisier in format JSON:
{ "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers": [ "212 555-1234", "646 555-4567" ] }
Mai multe informatii puteti gasi aici : https://www.json.org/
Exista mai multe biblioteci care stiu sa parseze fisere JSON in java si sa le mapeze la un obiect. In acest tutorial, vom prezenta Jackson.
Jackson este o biblioteca de java care faciliteaza citirea fisierelor JSON. Acesta mapeaza field-urile unui obiect la cele din fisierul JSON.
Acest API este livrat deja compilat sub formă de fișier JAR. Importarea unui astfel de proiect este explicata în acest tutorial.
Descarcare biblioteci:
Vom folosi urmatoarea clasa:
public class Car { private String color; private String type; // gettere si settere standard public String getColor() { return color; } public String getType() { return type; } public void setColor(String color) { this.color = color; } public void setType(String type) { this.type = type; } }
Clasa care ne intereseaza este ObjectMapper. Aceasta clasa pune la dispozitie metode cu ajutorul carora putem transpune informatiile dintr-un JSON intr-un obiect si invers.
Exemplu de mapare dintr-un string
ObjectMapper objectMapper = new ObjectMapper(); String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }"; Car car = objectMapper.readValue(json, Car.class);
Exemplu de mapare dintr-un fisier
ObjectMapper objectMapper = new ObjectMapper(); Car car = objectMapper.readValue(new File("target/car.json"), Car.class);
Exemplu de mapare a unei liste:
String jsonCarArray = "[{ \"color\" : \"Black\", \"type\" : \"BMW\" }, { \"color\" : \"Red\", \"type\" : \"FIAT\" }]"; List<Car> listCar = objectMapper.readValue(jsonCarArray, new TypeReference<List<Car>>(){});
Exemplu de mapare a unui obiect intr-un fisier JSON
ObjectMapper objectMapper = new ObjectMapper(); Car car = new Car("yellow", "renault"); objectMapper.writeValue(new File("target/car.json"), car);
Obiecte neasted
In formatul JSON, putem avea si obiecte neasted:
Clase:
public class Car { private Color color; private String type; // settere si gettere standard public Color getColor() { return color; } public String getType() { return type; } public void setColor(Color color) { this.color = color; } public void setType(String type) { this.type = type; } } public class Color { private int red; private int blue; private int green; // settere si gettere standard }
Fisier JSON :
{ “color”: { “red”: 255, “blue”: 255, “green”: 255 }, “type”: “Tesla” }
Documentatie: http://fasterxml.github.io/jackson-databind/javadoc/2.9/ → ObjectMapper