Noções básicas de JSON com Tablesaw

Importando dados em Java

Anthony Markham

VP Quant Developer

Introdução ao JSON

  • JSON: JavaScript Object Notation
    • Formato leve de intercâmbio de dados
    • Formato padrão para APIs web
    • Estrutura de pares chave-valor

imagem json

Importando dados em Java

Dados tabulares

  • Linhas e colunas fixas
  • Tabular: Tipos de dados uniformes
| Nome  | Idade | Cidade  |
|-------|-------|---------|
| Alice | 30    | Boston  |
| Bob   | 25    | Seattle |

JSON

  • Estruturas aninhadas flexíveis
  • Tipos de dados mistos e hierarquias
[
  {"name": "Alice", 
      "age": 30, 
      "address": {"city": "Boston", 
                  "state": "MA"}},
  {"name": "Bob", 
      "age": 25, 
      "address": {"city": "Seattle", 
                  "state": "WA"}}
]
Importando dados em Java

Lendo JSON

  • Use apenas para arquivos JSON simples
// Método simples para ler um arquivo JSON
Table products = Table.read().file("products.json");

$$

import tech.tablesaw.io.json.JsonReader;
import tech.tablesaw.io.json.JsonReadOptions;
  • Oferece configuração adicional
// Lendo um arquivo JSON usando JsonReadOptions
JsonReadOptions options = JsonReadOptions.builder("products.json").build();

Table products = new JsonReader().read(options);
Importando dados em Java

Acessando dados JSON

  • Métodos familiares do Tablesaw funcionam
// Acessar colunas de dados JSON
StringColumn names = table.stringColumn("name");
DoubleColumn prices = table.doubleColumn("price");

// Realizar cálculos double avgPrice = prices.mean(); String mostExpensive = table .where(prices.isEqualTo(prices.max())) .stringColumn("name").get(0);
Importando dados em Java

Melhores práticas JSON - validação

  • Valide a estrutura JSON antes de processar
// Validação e tratamento de erros
try {
    JsonReadOptions options = JsonReadOptions.builder("data.json").build();
    Table data = new JsonReader().read(options);
    if (data.rowCount() > 0) {
        // Processar dados
    }
} catch (Exception e) {
    System.err.println("Erro ao ler JSON: " + e.getMessage());
}
if (data.rowCount() == 100) {
    System.out.println("Tabela tem exatamente 100 linhas - processando dados");
}
Importando dados em Java

Melhores práticas JSON - valores ausentes

  • Lidar com valores ausentes/nulos
// Remover linhas com valores ausentes
data = data.dropRowsWithMissingValues();
  • Ajustar tipos de dados às necessidades de análise
// Converter coluna de inteiro para double para cálculos
data = data.replaceColumn("price", data.intColumn("price").asDoubleColumn());
Importando dados em Java

Vamos praticar!

Importando dados em Java

Preparing Video For Download...