健康指標 - JSON 匯出格式

JSON 匯出中健康指標結構的文件

Last updated: February 6, 2026

On this page

健康指標

健康指標代表由您的 Apple Health 應用程式和連接的裝置收集的各種測量值和資料點。在 JSON 匯出中,健康指標儲存在 metrics 陣列中。

指標名稱格式

JSON 匯出中的所有指標名稱都使用 snake_case 格式(帶底線的小寫字母)。例如:

  • "Step Count" 變為 "step_count"
  • "Blood Pressure" 變為 "blood_pressure"
  • "Heart Rate" 變為 "heart_rate"
  • "Walking + Running Distance" 變為 "walking_running_distance"

結構

metrics 陣列包含物件,每個物件代表特定的健康指標類型。大多數健康指標遵循通用結構:

{
  "name": "step_count",
  "units": "count",
  "data": [
    {
      "qty": 8500,
      "date": "2024-02-06 14:30:00 -0800"
    }
  ]
}

通用欄位

  • name (String): 健康指標的 snake_case 格式名稱(例如:"step_count"、"heart_rate"、"active_energy")
  • units (String): 測量單位(例如:"count"、"bpm"、"kcal")
  • data (Array): 資料點陣列,每個包含:
    • qty (Number): 數量值
    • date (Date): yyyy-MM-dd HH:mm:ss Z 格式的時間戳記

特殊指標格式

某些健康指標具有與通用格式不同的獨特結構:

血壓

血壓讀數包括收縮壓和舒張壓值:

{
  "name": "blood_pressure",
  "units": "mmHg",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "systolic": 120,
      "diastolic": 80
    }
  ]
}

欄位:

  • systolic (Number): 收縮壓(上)血壓讀數
  • diastolic (Number): 舒張壓(下)血壓讀數

心率

心率資料包括最小值、平均值和最大值:

{
  "name": "heart_rate",
  "units": "bpm",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85
    }
  ]
}

欄位:

  • Min (Number): 測量期間的最小心率
  • Avg (Number): 測量期間的平均心率
  • Max (Number): 測量期間的最大心率

睡眠分析

睡眠資料結構根據匯出設定中是否啟用資料聚合而有所不同。

聚合的睡眠資料

啟用聚合後,睡眠資料按天彙總:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06",
      "totalSleep": 7.5,
      "asleep": 7.0,
      "core": 3.5,
      "deep": 1.5,
      "rem": 2.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

欄位:

  • totalSleep (Number): 總睡眠時間(以小時為單位)
  • asleep (Number): 任何睡眠狀態的總時間
  • core (Number): 淺睡眠持續時間(以小時為單位)
  • deep (Number): 深睡眠持續時間(以小時為單位)
  • rem (Number): REM 睡眠持續時間(以小時為單位)
  • sleepStart (Date): 睡眠實際開始的時間
  • sleepEnd (Date): 睡眠實際結束的時間
  • inBed (Number): 在床上的總時間(以小時為單位)
  • inBedStart (Date): 您上床的時間
  • inBedEnd (Date): 您起床的時間

未聚合的睡眠資料

停用聚合後,包含個別的睡眠段:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "deep": 0.0,
      "rem": 0.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

欄位:

  • startDate (Date): 睡眠段的開始時間
  • endDate (Date): 睡眠段的結束時間
  • qty (Number): 段的持續時間(以小時為單位)
  • value (String): 睡眠狀態 - 以下之一:
    • "Awake"
    • "Asleep"(未分類的睡眠階段)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

注意: "Asleep" 指的是未分類的睡眠階段(而不是總睡眠時間)。如果資料來源不支援睡眠階段追蹤,則可能發生這種情況。

血糖

血糖讀數包括進餐時間資訊:

{
  "name": "blood_glucose",
  "units": "mg/dL",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 95,
      "mealTime": "Before Meal"
    }
  ]
}

欄位:

  • qty (Number): 血糖水平
  • mealTime (String): 以下之一:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

性活動

性活動項目追蹤保護措施的使用:

{
  "name": "sexual_activity",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 20:00:00 -0800",
      "Unspecified": 0,
      "Protection Used": 1,
      "Protection Not Used": 0
    }
  ]
}

欄位:

  • Unspecified (Number): 保護狀態未知時的計數
  • Protection Used (Number): 使用保護時的計數
  • Protection Not Used (Number): 未使用保護時的計數

洗手

洗手事件追蹤完成狀態:

{
  "name": "handwashing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

欄位:

  • qty (Number): 洗手事件的數量
  • value (String): 以下之一:
    • "Complete"
    • "Incomplete"

刷牙

刷牙事件追蹤完成狀態:

{
  "name": "toothbrushing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

欄位:

  • qty (Number): 刷牙事件的數量
  • value (String): 以下之一:
    • "Complete"
    • "Incomplete"

胰島素給藥

胰島素給藥項目包括給藥原因:

{
  "name": "insulin_delivery",
  "units": "IU",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 5,
      "reason": "Bolus"
    }
  ]
}

欄位:

  • qty (Number): 給藥的胰島素量
  • reason (String): 以下之一:
    • "Bolus"(餐時胰島素)
    • "Basal"(基礎胰島素)

常見健康指標

一些常見的匯出健康指標包括(所有指標名稱均為 snake_case 格式):

  • step_count - 每日步數
  • walking_running_distance - 移動距離
  • active_energy - 通過活動消耗的卡路里
  • resting_heart_rate - 靜息心率
  • heart_rate - 心率測量
  • respiratory_rate - 呼吸頻率
  • body_temperature - 體溫讀數
  • blood_oxygen_saturation - SpO2 水平
  • weight_&_body_mass - 體重測量
  • body_mass_index - 計算的 BMI 值
  • height - 身高測量
  • dietary_water - 液體攝入量
  • mindful_minutes - 冥想或正念時間

提示

  • 時間分組: 使用匯出設定中的時間分組設定來控制資料的聚合方式(按秒、分鐘、小時、天等)
  • 資料聚合: 啟用資料聚合以按天彙總睡眠和其他指標,以便於分析
  • 選擇性匯出: 您可以選擇在匯出中包含哪些特定的健康指標,以減少檔案大小和處理時間

相關文件