Tréningy - formát exportu JSON
Dokumentácia štruktúry tréningov v JSON exportoch
Posledná aktualizácia: 31. októbra 2026
Na tejto stránke
JSON exporty ukladajú tréningy v poli workouts.
Verzie exportu
Health Auto Export podporuje dve verzie exportu tréningov:
- Verzia 2 (odporúčaná): Rozšírený formát s podrobnejšími metadátami a štruktúrovanými údajmi
- Verzia 1 (legacy): Starší formát udržiavaný kvôli kompatibilite s existujúcimi pracovnými postupmi
Tréningy Verzia 2
Verzia 2 zahŕňa nasledujúce povinné polia a voliteľné údaje. Príklady používajú vypnuté Lokalizovať jednotky; zapnutie môže zmeniť štítky jednotiek v sériách metrík.
Základná štruktúra
{
"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
}
Povinné polia
id(String): Jedinečný identifikátor tréninguname(String): Názov typu tréningu (napr. "Running", "Cycling", "Swimming")start(Date): Začiatočný čas tréningu vo formáteyyyy-MM-dd HH:mm:ss Zend(Date): Koncový čas tréningu vo formáteyyyy-MM-dd HH:mm:ss Zduration(Number): Trvanie tréningu v sekundách
Voliteľné polia
Voliteľné polia závisia od dostupných údajov a vašich výberov exportu:
Zdroj nahrávania
{
"source": {
"name": "Workout App",
"identifier": "com.example.workouts"
}
}
source(Object): Aplikácia alebo zariadenie, ktoré zaznamenalo tréning, s názvom a identifikátorom aplikácie. Jednotlivé hodnoty metrík majú samostatné reťazce zdroja a môžu pochádzať z inej aplikácie alebo zariadenia.
Informácie o lokalite
{
"location": "Outdoor",
"isIndoor": false
}
location(String): Jedno z"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): Či bol tréning vykonaný vo vnútri
Energia a intenzita
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "kcal/hr\u00b7kg"
}
}
activeEnergyBurned(Object): Aktívne kalórie spálené počas tréningutotalEnergy(Object): Celkové kalórie (aktívne + pokojové) spálenéintensity(Object): Hodnota metabolického ekvivalentu úlohy (MET)
Vzdialenosť a rýchlosť
{
"distance": {
"qty": 3.5,
"units": "mi"
}
}
distance(Object): Celková prejdená vzdialenosťspeed(Object): Priemerná rýchlosť vypočítaná zo vzdialenosti a trvaniaavgSpeed(Object): Priemerná rýchlosť počas tréningumaxSpeed(Object): Dosiahnutá maximálna rýchlosť
Každý objekt zahŕňa qty a units.
Prevýšenie
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Object): Celkové získané prevýšenieelevationDown(Object): Celkové stratené prevýšenie
Jednotky: "ft" (stopy) alebo "m" (metre)
Environmentálne údaje
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Object): Okolitá teplota počas tréninguhumidity(Object): Percento relatívnej vlhkosti
Jednotky teploty: "degF" (Fahrenheit) alebo "degC" (Celsius)
Polia špecifické pre plávanie
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "count/min"
}
}
lapLength(Object): Dĺžka každého kolastrokeStyle(String): Jedno z:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): Skóre plávacej efektivitysalinity(String):"Fresh Water"alebo"Salt Water"totalSwimmingStrokeCount(Object): Celkový počet záberovswimCadence(Object): Zábery za minútu
Údaje krokov a kadencie
{
"stepCount": [
{
"date": "2024-02-06 07:00:00 -0800",
"qty": 5000,
"units": "count",
"source": "Apple Watch"
}
],
"stepCadence": {
"qty": 180,
"units": "count/min"
},
"flightsClimbed": {
"qty": 10,
"units": "count"
}
}
stepCount(Array): Pole meraní počtu krokov v časestepCadence(Object): Kroky za minútuflightsClimbed(Object): Počet prekonaných poschodí
Údaje srdcovej frekvencie
{
"heartRate": {
"min": {
"qty": 120,
"units": "count/min"
},
"avg": {
"qty": 150,
"units": "count/min"
},
"max": {
"qty": 175,
"units": "count/min"
}
},
"maxHeartRate": {
"qty": 175,
"units": "count/min"
},
"avgHeartRate": {
"qty": 150,
"units": "count/min"
},
"heartRateData": [
{
"date": "2024-02-06 07:00:00 -0800",
"Min": 120,
"Avg": 150,
"Max": 175,
"units": "count/min",
"source": "Apple Watch"
}
],
"heartRateRecovery": [
{
"date": "2024-02-06 07:30:00 -0800",
"Min": 140,
"Avg": 145,
"Max": 150,
"units": "count/min",
"source": "Apple Watch"
}
]
}
heartRate(Object): Súhrn s min., priem. a max. srdcovou frekvenciou počas tréningumaxHeartRate(Object): Maximálna srdcová frekvencia počas tréninguavgHeartRate(Object): Priemerná srdcová frekvencia počas tréninguheartRateData(Array): Podrobné merania z tréningu, končiace keď tréning skončíheartRateRecovery(Array): Samostatné merania z dvoch minút ihneď po skončení tréningu
Súhrnné srdcové frekvencie používajú zaznamenané hodnoty tréningu, keď sú dostupné, inak hodnoty srdcovej frekvencie tréningu. Exportované hodnoty zahŕňajú merania počas pauz, takže ich špičky a priemery sa môžu líšiť od súhrnu.
Polia údajov časovej rady
Mnohé metriky môžu byť zahrnuté ako polia časovej rady, keď je zapnuté „Zahrnúť metriky tréningu“:
{
"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": "count/min",
"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": "mi/hr",
"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"
}
]
}
Štruktúra QuantityData:
date(Date): Časová pečiatka meraniaqty(Number): Hodnota množstvaunits(String): Merná jednotkasource(String, voliteľné): Zariadenie alebo aplikácia zdroja údajov
Štruktúra HeartRateData:
date(Date): Časová pečiatka meraniaMin(Number): Minimálna srdcová frekvenciaAvg(Number): Priemerná srdcová frekvenciaMax(Number): Maximálna srdcová frekvenciaunits(String): Jednotka (count/minpri vypnutom Lokalizovať jednotky)source(String, voliteľné): Zariadenie alebo aplikácia zdroja údajov
Údaje trasy
Keď je zapnuté „Zahrnúť údaje trasy“ a tréning má GPS údaje:
{
"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
}
]
}
Polia polohy:
latitude(Number): GPS súradnica zemepisnej šírkylongitude(Number): GPS súradnica zemepisnej dĺžkyaltitude(Number): Nadmorská výška v metrochcourse(Number): Smer pohybu v stupňoch (0–360)courseAccuracy(Number): Presnosť merania kurzu v stupňochhorizontalAccuracy(Number): Horizontálna presnosť polohy v metrochverticalAccuracy(Number): Vertikálna presnosť polohy v metrochtimestamp(Date): Čas, keď bola poloha zaznamenanáspeed(Number): Rýchlosť v metroch za sekunduspeedAccuracy(Number): Presnosť merania rýchlosti v m/s
Metadáta
{
"metadata": {
"customField": {
"label": "value",
"quantity": 123
},
"anotherField": [
1,
2,
3
]
}
}
metadata(Object): Ďalšie vlastné metadáta spojené s tréningom
Udalosti, aktivity a medzičasy
JSON a Markdown exporty Verzie 2 môžu zahŕňať events, segments, laps a activities zaznamenané aplikáciou tréningu. Zostávajú dostupné, keď je Zahrnúť metriky tréningu vypnuté. CSV a GPX tieto záznamy nezahŕňajú.
So zapnutým Zahrnúť metriky tréningu a vybranými relevantnými metrikami môžu intervaly tiež zahŕňať vzdialenosť, aktívnu energiu, súhrny srdcovej frekvencie a tempo alebo rýchlosť aktívneho času. Hodnoty rozlišujú zaznamenané merania od odhadov; nedostupné hodnoty sa vynechávajú.
Pri vybranej vzdialenosti môže splits zahŕňať odhadované kilometrové a míľové medzičasy. Môžu sa líšiť od medzičasov nahrávacej aplikácie a posledný medzičas je označený ako čiastočný, keď je kratší než cieľová vzdialenosť. Chýbajúce hodnoty vzdialenosti alebo nepodporované typy tréningov môžu zabrániť výpočtu medzičasov.
Skóre úsilia tréningu
JSON a Markdown exporty Verzie 2 môžu zahŕňať vybrané hodnoty Skóre úsilia tréningu (effortScore) a Odhadované skóre úsilia tréningu (estimatedEffortScore). Každé je objekt s qty a units: "appleEffortScore".
Skóre vyžadujú iOS 18 alebo novší a prístup k zodpovedajúcim údajom v Apple Health. Skóre celého tréningu a aktivity sú samostatné. Sú nezávislé od Časového zoskupenia a Zahrnúť metriky tréningu; CSV ich nezahŕňa.
V Prehliadať → Tréningy otvorte hárok exportu zoznamu alebo nastavenia exportu Verzie 2 tréningu a pred exportom použite Vybrať polia exportu na voľbu skóre úsilia.
Časové zoskupenie metrík tréningu
Pri použití Verzie exportu 2 a zapnutom „Zahrnúť metriky tréningu“ môžete riadiť granularitu údajov časovej rady:
- Minúty: Zoskupuje metriky tréningu podľa minút hodín. Prvá a posledná minúta môžu zahŕňať niekoľko sekúnd tesne pred začiatkom alebo tesne po skončení tréningu.
- Sekundy: Zoskupuje metriky tréningu podľa sekúnd hodín, pričom každá pečiatka označuje začiatok svojej sekundy. Prvá a posledná sekunda môžu zahŕňať zlomok sekundy tesne mimo tréningu. Súbory sú väčšie než pri zoskupení po minútach.
Aktívna a pokojová energia používajú rovnaké kombinované súčty ako iné metriky tréningu v každej časovej skupine. Hodnoty z viacerých zariadení alebo aplikácií sú zahrnuté spolu.
Tréningy Verzia 1 (legacy)
Verzia 1 používa jednoduchšiu štruktúru. Pre nové exporty sa odporúča Verzia 2.
Štruktúra Verzie 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": "bpm"
}
],
"route": [
{
"lat": 37.7749,
"lon": -122.4194,
"altitude": 50.5,
"timestamp": "2024-02-06 07:00:00 -0800"
}
]
}