Xử lý JSON phức tạp

Nhập dữ liệu trong Java

Anthony Markham

VP Quant Developer

Dữ liệu JSON phức tạp

  • Đối tượng và mảng lồng nhau
  • Kiểu dữ liệu hỗn hợp
  • Xử lý API và tệp cấu hình 🧠

$$

Dữ liệu json phức tạp

Nhập dữ liệu trong Java

Đối tượng JSON lồng nhau

  • Lồng nhau - đối tượng trong đối tượng
  • Tablesaw có thể tự phẳng hóa các trường hợp đơn giản
  • Phẳng hóa - chuyển một cột chứa danh sách hoặc mảng ở mỗi hàng thành nhiều hàng
{
  "customer": {
    "name": "John Doe",
    "address": {
      "street": "123 Main St",                            <- Thông tin lồng nhau
      "city": "Boston",                                   <- Thông tin lồng nhau
      "coordinates": {"lat": 42.3601, "lng": -71.0589}    <- Lồng trong thông tin lồng nhau
    }
  }
}
Nhập dữ liệu trong Java

Phẳng hóa 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
Nhập dữ liệu trong Java

Cấu hình JsonReader

  • JsonReadOptions cho phép:
    • Chỉ định nguồn (tệp, URL, hoặc chuỗi)
    • Cấu hình tên bảng
    • Xử lý giá trị thiếu
JsonReadOptions options = JsonReadOptions

.builder("complex.json")
.tableName("Products")
.missingValueIndicator("N/A")
.build();
Table data = new JsonReader().read(options);
missingValues = data.stringColumn("name").isMissing();
Nhập dữ liệu trong Java

Nối bảng (join)

  • Dùng joinOn để nối các bảng với nhau
  • Phép nối inner chỉ giữ các hàng có ở cả hai bảng
Table phones = Table.read().csv("phones.csv");   // name, phone

Table diets = Table.read().csv("diets.csv"); // name, diet
// Thực hiện inner join trên hai bảng Table joined = phones.joinOn("name").inner(diets);

$$

$$

  • Còn nhiều kiểu join khác
Nhập dữ liệu trong Java

Cùng luyện tập nào!

Nhập dữ liệu trong Java

Preparing Video For Download...