การประมวลผล JSON ที่ซับซ้อน

การนำเข้าข้อมูลใน Java

Anthony Markham

VP Quant Developer

ข้อมูล JSON ที่ซับซ้อน

  • ออบเจกต์และอาร์เรย์แบบซ้อนกัน
  • ชนิดข้อมูลแบบผสม
  • การจัดการ API และไฟล์การตั้งค่า 🧠

$$

ข้อมูล JSON ที่ซับซ้อน

การนำเข้าข้อมูลใน Java

ออบเจกต์ JSON แบบซ้อนกัน

  • การซ้อนกัน — ออบเจกต์ภายในออบเจกต์
  • Tablesaw สามารถ flatten กรณีง่ายๆ ได้อัตโนมัติ
  • การ flatten — แปลงคอลัมน์ที่มีลิสต์หรืออาร์เรย์ในแต่ละแถวให้กลายเป็นหลายแถว
{
  "customer": {
    "name": "John Doe",
    "address": {
      "street": "123 Main St",                            <- Nested information
      "city": "Boston",                                   <- Nested information
      "coordinates": {"lat": 42.3601, "lng": -71.0589}    <- Nested within nested information
    }
  }
}
การนำเข้าข้อมูลใน Java

การ flatten ข้อมูล 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
การนำเข้าข้อมูลใน Java

การตั้งค่า JsonReader

  • JsonReadOptions รองรับการกำหนด:
    • แหล่งข้อมูล (ไฟล์ URL หรือสตริง)
    • ชื่อตาราง
    • การจัดการค่าที่หายไป
JsonReadOptions options = JsonReadOptions

.builder("complex.json")
.tableName("Products")
.missingValueIndicator("N/A")
.build();
Table data = new JsonReader().read(options);
missingValues = data.stringColumn("name").isMissing();
การนำเข้าข้อมูลใน Java

การเชื่อมตาราง

  • ใช้ joinOn เพื่อเชื่อมตารางเข้าด้วยกัน
  • inner join เก็บเฉพาะแถวที่มีอยู่ในทั้งสองตาราง
Table phones = Table.read().csv("phones.csv");   // name, phone

Table diets = Table.read().csv("diets.csv"); // name, diet
// Perform the inner join on the two tables Table joined = phones.joinOn("name").inner(diets);

$$

$$

  • ยังมี join ประเภทอื่นอีกมาก
การนำเข้าข้อมูลใน Java

มาฝึกกันเถอะ!

การนำเข้าข้อมูลใน Java

Preparing Video For Download...