Traitement JSON complexe

Importer des données en Java

Anthony Markham

VP Quant Developer

Données JSON complexes

  • Objets et tableaux imbriqués
  • Types de données mixtes
  • Gestion des APIs et fichiers de configuration 🧠

$$

Données JSON complexes

Importer des données en Java

Objets JSON imbriqués

  • Imbrication - objets dans des objets
  • Tablesaw peut aplatir automatiquement les cas simples
  • Aplatissement - transformer une colonne contenant des listes ou tableaux en plusieurs lignes
{
  "customer": {
    "name": "John Doe",
    "address": {
      "street": "123 Main St",                            <- Informations imbriquées
      "city": "Boston",                                   <- Informations imbriquées
      "coordinates": {"lat": 42.3601, "lng": -71.0589}    <- Imbriqué dans des informations imbriquées
    }
  }
}
Importer des données en Java

Aplatissement JSON

customer.name customer.address.street customer.address.city
John Doe 123 Main St Boston

$ $

customer.address.coordinates.lat customer.address.coordinates.lng
42.3601 -71.0589
Importer des données en Java

Configuration de JsonReader

  • JsonReadOptions permet de :
    • Spécifier la source (fichier, URL ou chaîne)
    • Configurer le nom de la table
    • Gérer les valeurs manquantes
JsonReadOptions options = JsonReadOptions

.builder("complex.json")
.tableName("Products")
.missingValueIndicator("N/A")
.build();
Table data = new JsonReader().read(options);
missingValues = data.stringColumn("name").isMissing();
Importer des données en Java

Joindre des tables

  • Utilisez joinOn pour joindre des tables
  • Une jointure interne conserve uniquement les lignes présentes dans les deux tables
Table phones = Table.read().csv("phones.csv");   // name, phone

Table diets = Table.read().csv("diets.csv"); // name, diet
// Effectuer la jointure interne sur les deux tables Table joined = phones.joinOn("name").inner(diets);

$$

$$

  • De nombreux autres types de jointures existent
Importer des données en Java

Passons à la pratique !

Importer des données en Java

Preparing Video For Download...