Latihan — format eksport JSON
Dokumentasi untuk struktur latihan dalam eksport JSON
Last updated: April 5, 2026
Pada halaman ini
Latihan
Data latihan merangkumi semua sesi senaman anda yang direkodkan dalam Apple Health, seperti berlari, berbasikal, berenang, latihan kekuatan dan banyak lagi. Dalam eksport JSON, latihan disimpan dalam tatasusunan workouts.
Versi eksport
Health Auto Export menyokong dua versi eksport latihan:
- Versi 2 (Disyorkan): Format dipertingkatkan dengan metadata lebih terperinci dan data berstruktur
- Versi 1 (Legasi): Format lama dikekalkan untuk keserasian dengan aliran kerja sedia ada
Latihan versi 2
Versi 2 menyediakan struktur menyeluruh dengan medan pilihan yang hanya disertakan apabila data tersedia.
Struktur asas
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"duration": 1800
}
Medan wajib
id(Rentetan): Pengecam unik untuk latihanname(Rentetan): Nama jenis latihan (cth. "Running", "Cycling", "Swimming")start(Tarikh): Masa mula latihan dalam formatyyyy-MM-dd HH:mm:ss Zend(Tarikh): Masa tamat latihan dalam formatyyyy-MM-dd HH:mm:ss Zduration(Nombor): Tempoh latihan dalam saat
Medan pilihan
Medan berikut hanya disertakan apabila data tersedia:
Maklumat lokasi
{
"location": "Outdoor",
"isIndoor": false
}
location(Rentetan): Salah satu daripada"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): Sama ada latihan dilakukan dalam bangunan
Tenaga dan keamatan
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Objek): Kalori aktif terbakar semasa latihantotalEnergy(Objek): Jumlah kalori (aktif + rehat) terbakarintensity(Objek): Nilai setara metabolik tugas (MET)
Jarak dan kelajuan
{
"distance": {
"qty": 3.5,
"units": "mi"
},
"speed": {
"qty": 7.0,
"units": "mph"
},
"avgSpeed": {
"qty": 7.0,
"units": "mph"
},
"maxSpeed": {
"qty": 8.5,
"units": "mph"
}
}
distance(Objek): Jumlah jarak diliputispeed(Objek): Kelajuan semasa atau purataavgSpeed(Objek): Purata kelajuan sepanjang latihanmaxSpeed(Objek): Kelajuan maksimum dicapai
Unit:
- Jarak:
"mi"(batu) atau"km"(kilometer) - Kelajuan:
"mph"(batu sejam) atau"kmph"(kilometer sejam)
Ketinggian
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Objek): Jumlah ketinggian naikelevationDown(Objek): Jumlah ketinggian turun
Unit: "ft" (kaki) atau "m" (meter)
Data persekitaran
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Objek): Suhu persekitaran semasa latihanhumidity(Objek): Peratusan kelembapan relatif
Unit suhu: "degF" (Fahrenheit) atau "degC" (Celsius)
Medan khusus berenang
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "spm"
}
}
lapLength(Objek): Panjang setiap pusinganstrokeStyle(Rentetan): Salah satu daripada:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Nombor): Skor kecekapan renangsalinity(Rentetan):"Fresh Water"atau"Salt Water"totalSwimmingStrokeCount(Objek): Jumlah denyutanswimCadence(Objek): Denyutan per minit
Data langkah dan kaden
{
"stepCount": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 5000,
"units": "count",
"source": "Apple Watch"
}
],
"stepCadence": {
"qty": 180,
"units": "spm"
},
"flightsClimbed": {
"qty": 10,
"units": "count"
}
}
stepCount(Tatasusunan): Tatasusunan ukuran kiraan langkah mengikut masastepCadence(Objek): Langkah per minitflightsClimbed(Objek): Bilangan tingkat tangga didaki
Data kadar denyutan jantung
{
"heartRate": {
"min": {
"qty": 120,
"units": "bpm"
},
"avg": {
"qty": 150,
"units": "bpm"
},
"max": {
"qty": 175,
"units": "bpm"
}
},
"maxHeartRate": {
"qty": 175,
"units": "bpm"
},
"avgHeartRate": {
"qty": 150,
"units": "bpm"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"Min": 120,
"Avg": 150,
"Max": 175,
"units": "bpm",
"source": "Apple Watch"
}
],
"heartRateRecovery": [
{
"date": "2024-02-06 07:30:00 -0800",
"Min": 140,
"Avg": 145,
"Max": 150,
"units": "bpm",
"source": "Apple Watch"
}
]
}
heartRate(Objek): Ringkasan min, purata dan maks kadar denyutan jantungmaxHeartRate(Objek): Kadar denyutan jantung maksimum semasa latihanavgHeartRate(Objek): Purata kadar denyutan jantung semasa latihanheartRateData(Tatasusunan): Ukuran kadar denyutan jantung terperinci sepanjang latihanheartRateRecovery(Tatasusunan): Ukuran kadar denyutan jantung semasa tempoh pemulihan
Tatasusunan data siri masa
Banyak metrik boleh disertakan sebagai tatasusunan siri masa apabila "Sertakan metrik latihan" didayakan:
{
"activeEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 50,
"units": "kcal",
"source": "Apple Watch"
}
],
"basalEnergy": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "kcal",
"source": "Apple Watch"
}
],
"cyclingCadence": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 90,
"units": "rpm",
"source": "Apple Watch"
}
],
"cyclingDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.5,
"units": "mi",
"source": "Apple Watch"
}
],
"cyclingPower": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 200,
"units": "W",
"source": "Power Meter"
}
],
"cyclingSpeed": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 18,
"units": "mph",
"source": "Apple Watch"
}
],
"swimDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 25,
"units": "yd",
"source": "Apple Watch"
}
],
"swimStroke": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 20,
"units": "count",
"source": "Apple Watch"
}
],
"walkingAndRunningDistance": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 0.25,
"units": "mi",
"source": "Apple Watch"
}
]
}
Struktur QuantityData:
date(Tarikh): Cap masa ukuranqty(Nombor): Nilai kuantitiunits(Rentetan): Unit ukuransource(Rentetan, pilihan): Peranti atau apl sumber data
Struktur HeartRateData:
date(Tarikh): Cap masa ukuranMin(Nombor): Kadar denyutan jantung minimumAvg(Nombor): Purata kadar denyutan jantungMax(Nombor): Kadar denyutan jantung maksimumunits(Rentetan): Unit (biasanya "bpm")source(Rentetan, pilihan): Peranti atau apl sumber data
Data laluan
Apabila "Sertakan data laluan" didayakan dan latihan mempunyai data GPS:
{
"route": [
{
"latitude": 37.7749,
"longitude": -122.4194,
"altitude": 50.5,
"course": 45.0,
"courseAccuracy": 5.0,
"horizontalAccuracy": 10.0,
"verticalAccuracy": 15.0,
"timestamp": "2024-02-06 07:00:00 -0800",
"speed": 7.0,
"speedAccuracy": 0.5
}
]
}
Medan lokasi:
latitude(Nombor): Koordinat latitud GPSlongitude(Nombor): Koordinat longitud GPSaltitude(Nombor): Ketinggian dalam metercourse(Nombor): Arah perjalanan dalam darjah (0–360)courseAccuracy(Nombor): Ketepatan ukuran haluan dalam darjahhorizontalAccuracy(Nombor): Ketepatan kedudukan mengufuk dalam meterverticalAccuracy(Nombor): Ketepatan kedudukan menegak dalam metertimestamp(Tarikh): Masa lokasi direkodkanspeed(Nombor): Kelajuan dalam meter sesaatspeedAccuracy(Nombor): Ketepatan ukuran kelajuan dalam m/s
Metadata
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Objek): Metadata tersuai tambahan dikaitkan dengan latihan
Latihan versi 1 (legasi)
Versi 1 menggunakan struktur lebih mudah. Untuk eksport baharu, Versi 2 disyorkan.
Struktur versi 1
{
"name": "Running",
"start": "2024-02-06 07:00:00 -0800",
"end": "2024-02-06 07:30:00 -0800",
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"activeEnergy": {
"qty": 350,
"units": "kcal"
},
"distance": {
"qty": 3.5,
"units": "mi"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 150,
"units": "count"
}
],
"route": [
{
"lat": 37.7749,
"lon": -122.4194,
"altitude": 50.5,
"timestamp": "2024-02-06 07:00:00 -0800"
}
]
}
Pengumpulan masa metrik latihan
Apabila menggunakan Versi eksport 2 dan "Sertakan metrik latihan" didayakan, anda boleh mengawal butiran data siri masa:
- Minit: Mengumpulkan metrik latihan mengikut selang minit
- Saat: Mengumpulkan metrik latihan mengikut selang saat (lebih terperinci, saiz fail lebih besar)
Petua
- Sertakan data laluan: Dayakan pilihan ini untuk mendapatkan maklumat laluan GPS untuk latihan luar
- Sertakan metrik latihan: Dayakan ini untuk mendapatkan data siri masa terperinci untuk metrik seperti kadar denyutan jantung, kuasa dan kaden
- Versi eksport: Gunakan Versi 2 untuk struktur data paling menyeluruh
- Eksport GPX: Data laluan juga boleh dieksport sebagai fail GPX berasingan untuk digunakan dalam apl pemetaan