การออกกำลังกาย — รูปแบบการส่งออก JSON
เอกสารโครงสร้างการออกกำลังกายในการส่งออก JSON
Last updated: April 5, 2026
ในหน้านี้
การออกกำลังกาย
ข้อมูลการออกกำลังกายรวมเซสชันการออกกำลังกายทั้งหมดที่บันทึกใน Apple Health เช่น วิ่ง ปั่นจักรยาน ว่ายน้ำ เวท และอื่น ๆ ในการส่งออก JSON การออกกำลังกายอยู่ในอาร์เรย์ workouts
เวอร์ชันการส่งออก
Health Auto Export รองรับสองเวอร์ชันของการส่งออกการออกกำลังกาย:
- เวอร์ชัน 2 (แนะนำ): รูปแบบที่ละเอียดขึ้น พร้อมเมทาดาทาและโครงสร้างข้อมูล
- เวอร์ชัน 1 (Legacy): รูปแบบเก่าที่คงไว้เพื่อความเข้ากันได้กับเวิร์กโฟลว์เดิม
การออกกำลังกาย เวอร์ชัน 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(String): ตัวระบุเฉพาะของการออกกำลังกายname(String): ชื่อประเภทการออกกำลังกาย (เช่น "Running", "Cycling", "Swimming")start(Date): เวลาเริ่ม รูปแบบyyyy-MM-dd HH:mm:ss Zend(Date): เวลาสิ้นสุด รูปแบบyyyy-MM-dd HH:mm:ss Zduration(Number): ระยะเวลาเป็นวินาที
ฟิลด์เสริม
ฟิลด์ต่อไปนี้รวมเฉพาะเมื่อมีข้อมูล:
ข้อมูลสถานที่
{
"location": "Outdoor",
"isIndoor": false
}
location(String): หนึ่งใน"Indoor","Outdoor","Pool","Open Water"isIndoor(Boolean): ออกกำลังกายในร่มหรือไม่
พลังงานและความเข้มข้น
{
"activeEnergyBurned": {
"qty": 350,
"units": "kcal"
},
"totalEnergy": {
"qty": 450,
"units": "kcal"
},
"intensity": {
"qty": 8.5,
"units": "MET"
}
}
activeEnergyBurned(Object): แคลอรี่ที่ใช้ไปขณะเคลื่อนไหวระหว่างออกกำลังกายtotalEnergy(Object): แคลอรี่รวม (เคลื่อนไหว + พัก)intensity(Object): ค่า MET (Metabolic Equivalent of Task)
ระยะทางและความเร็ว
{
"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(Object): ระยะทางรวมspeed(Object): ความเร็วปัจจุบันหรือเฉลี่ยavgSpeed(Object): ความเร็วเฉลี่ยตลอดการออกกำลังกายmaxSpeed(Object): ความเร็วสูงสุด
หน่วย:
- ระยะทาง:
"mi"(ไมล์) หรือ"km"(กิโลเมตร) - ความเร็ว:
"mph"(ไมล์ต่อชั่วโมง) หรือ"kmph"(กิโลเมตรต่อชั่วโมง)
ความสูง
{
"elevationUp": {
"qty": 500,
"units": "ft"
},
"elevationDown": {
"qty": 450,
"units": "ft"
}
}
elevationUp(Object): ความสูงรวมที่ขึ้นelevationDown(Object): ความสูงรวมที่ลง
หน่วย: "ft" (ฟุต) หรือ "m" (เมตร)
ข้อมูลสิ่งแวดล้อม
{
"temperature": {
"qty": 72,
"units": "degF"
},
"humidity": {
"qty": 65,
"units": "%"
}
}
temperature(Object): อุณหภูมิรอบข้างระหว่างออกกำลังกายhumidity(Object): ความชื้นสัมพัทธ์เป็นเปอร์เซ็นต์
หน่วยอุณหภูมิ: "degF" (ฟาเรนไฮต์) หรือ "degC" (เซลเซียส)
ฟิลด์เฉพาะการว่ายน้ำ
{
"lapLength": {
"qty": 0.025,
"units": "mi"
},
"strokeStyle": "Freestyle",
"swolfScore": 45,
"salinity": "Fresh Water",
"totalSwimmingStrokeCount": {
"qty": 1200,
"units": "count"
},
"swimCadence": {
"qty": 30,
"units": "spm"
}
}
lapLength(Object): ความยาวแต่ละเลนstrokeStyle(String): หนึ่งใน:"Backstroke""Breaststroke""Butterfly""Freestyle""Mixed""Kickboard""Unknown"
swolfScore(Number): คะแนนประสิทธิภาพการว่าย (SWOLF)salinity(String):"Fresh Water"หรือ"Salt Water"totalSwimmingStrokeCount(Object): จำนวนจังหวะว่ายรวมswimCadence(Object): จังหวะต่อนาที
ข้อมูลก้าวและจังหวะ
{
"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(Array): อาร์เรย์ของการวัดจำนวนก้าวตามเวลาstepCadence(Object): ก้าวต่อนาทีflightsClimbed(Object): จำนวนชั้นบันไดที่ขึ้น
ข้อมูลอัตราการเต้นของหัวใจ
{
"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(Object): สรุปต่ำสุด เฉลี่ย สูงสุดmaxHeartRate(Object): อัตราการเต้นสูงสุดระหว่างออกกำลังกายavgHeartRate(Object): อัตราการเต้นเฉลี่ยระหว่างออกกำลังกายheartRateData(Array): การวัดอัตราการเต้นโดยละเอียดตลอดการออกกำลังกายheartRateRecovery(Array): การวัดอัตราการเต้นในช่วงฟื้นตัว
อาร์เรย์ข้อมูลตามเวลา
เมื่อเปิด "รวมตัวชี้วัดการออกกำลังกาย" ตัวชี้วัดหลายอย่างอาจอยู่ในรูปแบบอาร์เรย์ตามเวลา:
{
"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(Date): เวลาของการวัดqty(Number): ค่าปริมาณunits(String): หน่วยsource(String, optional): อุปกรณ์หรือแอปแหล่งข้อมูล
โครงสร้าง HeartRateData:
date(Date): เวลาของการวัดMin(Number): อัตราการเต้นต่ำสุดAvg(Number): อัตราการเต้นเฉลี่ยMax(Number): อัตราการเต้นสูงสุดunits(String): หน่วย (โดยทั่วไป "bpm")source(String, optional): อุปกรณ์หรือแอปแหล่งข้อมูล
ข้อมูลเส้นทาง
เมื่อเปิด "รวมข้อมูลเส้นทาง" และการออกกำลังกายมีข้อมูล 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(Number): พิกัดละติจูด GPSlongitude(Number): พิกัดลองจิจูด GPSaltitude(Number): ความสูงเป็นเมตรcourse(Number): ทิศทางการเคลื่อนที่เป็นหน่วยองศา (0–360)courseAccuracy(Number): ความแม่นยำของทิศทางเป็นองศาhorizontalAccuracy(Number): ความแม่นยำแนวนอนเป็นเมตรverticalAccuracy(Number): ความแม่นยำแนวตั้งเป็นเมตรtimestamp(Date): เวลาที่บันทึกตำแหน่งspeed(Number): ความเร็วเป็นเมตรต่อวินาทีspeedAccuracy(Number): ความแม่นยำของความเร็วเป็น m/s
เมทาดาทา
{
"metadata": {
"customField": "value",
"anotherField": 123
}
}
metadata(Object): เมทาดาทากำหนดเองเพิ่มเติมที่เชื่อมกับการออกกำลังกาย
การออกกำลังกาย เวอร์ชัน 1 (Legacy)
เวอร์ชัน 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"
}
]
}
การจัดกลุ่มตามเวลาของตัวชี้วัดการออกกำลังกาย
เมื่อใช้ Export Version 2 และเปิด "รวมตัวชี้วัดการออกกำลังกาย" คุณควบคุมความละเอียดของข้อมูลตามเวลาได้:
- นาที: จัดกลุ่มตัวชี้วัดตามช่วงนาที
- วินาที: จัดกลุ่มตามวินาที (ละเอียดกว่า ไฟล์ใหญ่กว่า)
เคล็ดลับ
- รวมข้อมูลเส้นทาง: เปิดตัวเลือกนี้เพื่อได้ข้อมูลเส้นทาง GPS สำหรับการออกกำลังกายกลางแจ้ง
- รวมตัวชี้วัดการออกกำลังกาย: เปิดเพื่อได้ข้อมูลตามเวลาสำหรับตัวชี้วัดเช่น อัตราการเต้น กำลัง และจังหวะ
- เวอร์ชันการส่งออก: ใช้เวอร์ชัน 2 สำหรับโครงสร้างข้อมูลที่ครบที่สุด
- การส่งออก GPX: ข้อมูลเส้นทางส่งออกเป็นไฟล์ GPX แยกได้สำหรับใช้ในแอปแผนที่