Προπονήσεις — Μορφή εξαγωγής JSON
Τεκμηρίωση για τη δομή προπονήσεων σε εξαγωγές JSON
Last updated: April 1, 2026
Σε αυτή τη σελίδα
Προπονήσεις
Τα δεδομένα προπόνησης περιλαμβάνουν όλες τις συνεδρίες άσκησης που έχετε καταγράψει στο Apple Health, όπως τρέξιμο, ποδηλασία, κολύμβηση, ενδυνάμωση και άλλα. Σε εξαγωγές JSON, οι προπονήσεις αποθηκεύονται στον πίνακα workouts.
Εκδόσεις εξαγωγής
Το Health Auto Export υποστηρίζει δύο εκδόσεις εξαγωγής προπονήσεων:
- Έκδοση 2 (Συνιστάται): Ενισχυμένη μορφή με πιο λεπτομερή μεταδεδομένα και δομημένα δεδομένα
- Έκδοση 1 (Παλαιού τύπου): Παλαιότερη μορφή που διατηρείται για συμβατότητα με υπάρχοντα workflows
Προπονήσεις έκδοσης 2
Η έκδοση 2 παρέχει ολοκληρωμένη δομή με προαιρετικά πεδία που συμπεριλαμβάνονται μόνο όταν υπάρχουν διαθέσιμα δεδομένα.
Βασική δομή
{
"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
}
Υποχρεωτικά πεδία
id(Συμβολοσειρά): Μοναδικό αναγνωριστικό της προπόνησηςname(Συμβολοσειρά): Όνομα τύπου προπόνησης (π.χ. «Running», «Cycling», «Swimming»)start(Ημερομηνία): Ώρα έναρξης προπόνησης σε μορφήyyyy-MM-dd HH:mm:ss Zend(Ημερομηνία): Ώρα λήξης προπόνησης σε μορφήyyyy-MM-dd HH:mm:ss Zduration(Αριθμός): Διάρκεια προπόνησης σε δευτερόλεπτα
Προαιρετικά πεδία
Τα ακόλουθα πεδία συμπεριλαμβάνονται μόνο όταν υπάρχουν διαθέσιμα δεδομένα:
Πληροφορίες τοποθεσίας
{
"location": "Outdoor",
"isIndoor": false
}
location(Συμβολοσειρά): Μία από τις"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): Αν η προπόνηση έγινε σε εσωτερικό χώρο
Ενέργεια και ένταση
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Αντικείμενο): Ενεργές θερμίδες που καταναλώθηκαν κατά την προπόνησηtotalEnergy(Αντικείμενο): Συνολικές θερμίδες (ενεργές + ηρεμίας) που καταναλώθηκανintensity(Αντικείμενο): Τιμή μεταβολικού ισοδυνάμου εργασίας (MET)
Απόσταση και ταχύτητα
{
"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(Αντικείμενο): Συνολική καλυφθείσα απόστασηspeed(Αντικείμενο): Τρέχουσα ή μέση ταχύτηταavgSpeed(Αντικείμενο): Μέση ταχύτητα κατά τη διάρκεια της προπόνησηςmaxSpeed(Αντικείμενο): Μέγιστη επιτευχθείσα ταχύτητα
Μονάδες:
- Απόσταση:
"mi"(μίλια) ή"km"(χιλιόμετρα) - Ταχύτητα:
"mph"(μίλια ανά ώρα) ή"kmph"(χιλιόμετρα ανά ώρα)
Υψόμετρο
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Αντικείμενο): Συνολική ανάβαση υψομέτρουelevationDown(Αντικείμενο): Συνολική κατάβαση υψομέτρου
Μονάδες: "ft" (πόδια) ή "m" (μέτρα)
Περιβαλλοντικά δεδομένα
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Αντικείμενο): Θερμοκρασία περιβάλλοντος κατά την προπόνησηhumidity(Αντικείμενο): Σχετική υγρασία σε ποσοστό
Μονάδες θερμοκρασίας: "degF" (Fahrenheit) ή "degC" (Celsius)
Πεδία ειδικά για κολύμβηση
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "spm"
}
}
lapLength(Αντικείμενο): Μήκος κάθε γύρου κολύμβησηςstrokeStyle(Συμβολοσειρά): Μία από τις:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Αριθμός): Βαθμολογία αποδοτικότητας κολύμβησης (SWOLF)salinity(Συμβολοσειρά):"Fresh Water"ή"Salt Water"totalSwimmingStrokeCount(Αντικείμενο): Συνολικός αριθμός κουνημάτωνswimCadence(Αντικείμενο): Κουνημάτα ανά λεπτό
Βήματα και ρυθμός (cadence)
{
"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(Πίνακας): Πίνακας μετρήσεων βημάτων στο χρόνοstepCadence(Αντικείμενο): Βήματα ανά λεπτόflightsClimbed(Αντικείμενο): Αριθμός ορόφων σκαλών που ανεβήκαν
Δεδομένα καρδιακού ρυθμού
{
"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(Αντικείμενο): Σύνοψη με ελάχιστο, μέσο και μέγιστο καρδιακό ρυθμόmaxHeartRate(Αντικείμενο): Μέγιστος καρδιακός ρυθμός κατά την προπόνησηavgHeartRate(Αντικείμενο): Μέσος καρδιακός ρυθμός κατά την προπόνησηheartRateData(Πίνακας): Λεπτομερείς μετρήσεις καρδιακού ρυθμού κατά τη διάρκεια της προπόνησηςheartRateRecovery(Πίνακας): Μετρήσεις καρδιακού ρυθμού κατά την περίοδο ανάκαμψης
Πίνακες δεδομένων χρονοσειρών
Πολλές μετρήσεις μπορούν να συμπεριληφθούν ως πίνακες χρονοσειρών όταν είναι ενεργοποιημένη η επιλογή Include Workout Metrics:
{
"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"
}
]
}
Δομή QuantityData:
date(Ημερομηνία): Χρονική σήμανση της μέτρησηςqty(Αριθμός): Τιμή ποσότηταςunits(Συμβολοσειρά): Μονάδα μέτρησηςsource(Συμβολοσειρά, προαιρετικό): Συσκευή ή εφαρμογή πηγής δεδομένων
Δομή HeartRateData:
date(Ημερομηνία): Χρονική σήμανση της μέτρησηςMin(Αριθμός): Ελάχιστος καρδιακός ρυθμόςAvg(Αριθμός): Μέσος καρδιακός ρυθμόςMax(Αριθμός): Μέγιστος καρδιακός ρυθμόςunits(Συμβολοσειρά): Μονάδα (συνήθως"bpm")source(Συμβολοσειρά, προαιρετικό): Συσκευή ή εφαρμογή πηγής δεδομένων
Δεδομένα διαδρομής
Όταν είναι ενεργοποιημένη η επιλογή Include Route 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
}
]
}
Πεδία τοποθεσίας:
latitude(Αριθμός): Συντεταγμένη πλάτους GPSlongitude(Αριθμός): Συντεταγμένη μήκους GPSaltitude(Αριθμός): Υψόμετρο σε μέτραcourse(Αριθμός): Κατεύθυνση κίνησης σε μοίρες (0–360)courseAccuracy(Αριθμός): Ακρίβεια μέτρησης πορείας σε μοίρεςhorizontalAccuracy(Αριθμός): Οριζόντια ακρίβεια θέσης σε μέτραverticalAccuracy(Αριθμός): Κατακόρυφη ακρίβεια θέσης σε μέτραtimestamp(Ημερομηνία): Ώρα καταγραφής της τοποθεσίαςspeed(Αριθμός): Ταχύτητα σε μέτρα ανά δευτερόλεπτοspeedAccuracy(Αριθμός): Ακρίβεια μέτρησης ταχύτητας σε m/s
Μεταδεδομένα
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Αντικείμενο): Επιπλέον προσαρμοσμένα μεταδεδομένα που συνδέονται με την προπόνηση
Προπονήσεις έκδοσης 1 (παλαιού τύπου)
Η έκδοση 1 χρησιμοποιεί απλούστερη δομή. Για νέες εξαγωγές συνιστάται η έκδοση 2.
Δομή έκδοσης 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"
}
]
}
Ομαδοποίηση χρόνου μετρικών προπόνησης
Όταν χρησιμοποιείτε την έκδοση εξαγωγής 2 (Export Version 2) και είναι ενεργοποιημένη η επιλογή Include Workout Metrics, μπορείτε να ελέγχετε τη λεπτομέρεια των δεδομένων χρονοσειρών:
- Λεπτά: Ομαδοποίηση μετρικών προπόνησης ανά λεπτό
- Δευτερόλεπτα: Ομαδοποίηση ανά δευτερόλεπτο (πιο λεπτομερή, μεγαλύτερο μέγεθος αρχείου)
Συμβουλές
- Include Route Data: Ενεργοποιήστε την επιλογή για λήψη δεδομένων διαδρομής GPS σε υπαίθριες προπονήσεις
- Include Workout Metrics: Ενεργοποιήστε την για λεπτομερείς χρονοσειρές μετρικών (π.χ. καρδιακός ρυθμός, ισχύς, ρυθμός)
- Έκδοση εξαγωγής: Προτιμήστε την έκδοση 2 (Export Version 2) για την πληρέστερη δομή δεδομένων
- GPX: Η διαδρομή μπορεί επίσης να εξαχθεί ως ξεχωριστά αρχεία GPX για χρήση σε εφαρμογές χαρτογράφησης