DailyTask 公式ガイド

保存データ(JSON)の書き方

DailyTask が書き出すバックアップファイルの文法と、手で編集するときに守るべきルールをまとめた公式リファレンスです。

01このファイルについて

DailyTask の保存データは .json 形式のテキストファイルです。アプリの「保存データ」タブから書き出し、Files.app や iCloud Drive から直接開いて編集できます。

編集して保存すると、アプリが内容を検証します。下記のルールに 1 つでも違反していると取り込みは拒否され、編集前の状態が保たれます。安全に手入力するために、このページの文法を守ってください。

正本はアプリ内データです JSON ファイルはあくまで「書き出し・取り込み用の表現」です。アプリ内の保存データが正本であり、ファイルは橋渡しの役割を持ちます。

02全体構造

ファイルのいちばん外側は、3 つのキーを持つオブジェクトです。

{
  "version": 2,          // スキーマのバージョン(整数)
  "tags": [ … ],        // タグの一覧
  "tasks": [ … ]        // タスクの一覧
}
キー必須説明
version整数必須スキーマのバージョン。現在は 1 または 2 が有効。アプリの書き出しは常に 2
tags配列必須タグオブジェクトの配列。空配列 [] でも可。
tasks配列必須タスクオブジェクトの配列。空配列 [] でも可。
version について version 2 でタスクに isRecurring(習慣型フラグ)が追加されました。version 1 の古いファイルも読み込めます(その場合 isRecurring は無いものとして扱われます)。

03tags 配列の要素

タグはタスクを分類するためのラベルです。各要素は次の 3 キーを持ちます。

{
  "id": "7E3A9C12-4F8B-4D2E-9A11-0C5B6D7E8F90",
  "name": "運動",
  "colorHex": "#6AD08C"
}
キー必須説明
id文字列(UUID)必須このタグを一意に識別する UUID。例: 7E3A9C12-4F8B-4D2E-9A11-0C5B6D7E8F90tags 内で重複してはいけません。
name文字列必須タグの表示名。
colorHex文字列必須タグの色。プリセット 9 色のいずれかに完全一致する必要があります。

04tasks 配列の要素

タスクは 1 日分のタスク 1 件を表します。各要素は次のキーを持ちます。

{
  "id": "A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D",
  "name": "ランニング 30 分",
  "isFavorite": false,
  "isCompleted": true,
  "isRecurring": true,
  "date": "2026-06-15",
  "tagIDs": ["7E3A9C12-4F8B-4D2E-9A11-0C5B6D7E8F90"]
}
キー必須説明
id文字列(UUID)必須このタスクを一意に識別する UUIDtasks 内で重複してはいけません。
name文字列必須タスク名。
isFavorite真偽値必須お気に入りかどうか(true / false)。
isCompleted真偽値必須達成済みかどうか(true / false)。
isRecurring真偽値任意習慣型タスクかどうか。version 2 で追加。省略した場合は false 扱い。
date文字列必須そのタスクが属する日。yyyy-MM-dd 形式(例 2026-06-15)。時刻は含めません。
tagIDs配列(UUID)必須このタスクに付くタグの id の配列。すべて tags に実在する id を指す必要があります。タグなしは []

05使えるタグカラー(プリセット 9 色)

colorHex には次の 9 色のいずれかを、大文字・先頭 # 付きの 6 桁で指定します。これ以外の色は受け付けられません。

ブルー #65A1DF グリーン #6AD08C レッド #EC6969 オレンジ #F7B344 パープル #AA72C1 イエロー #F9CA62 ティール #3CC6AB ピンク #EC409D グレー #929D9E

06検証ルール(7 項目)

取り込み時に次の 7 ルールがすべてチェックされます。1 つでも違反すると取り込みは拒否されます。

  1. JSON として正しいか — 括弧・カンマ・引用符など、JSON の文法として正しく解析できること。
  2. version が既知かversion1 または 2 であること。
  3. 必須フィールドと型の一致 — 上の表の必須キーがすべて存在し、型が合っていること。idtagIDs の各要素は UUID として解釈できる文字列であること。
  4. date の形式dateyyyy-MM-dd(ISO 8601 の日付)であること。実在しない日付は不可。
  5. colorHex がプリセットかcolorHex許可された 9 色のいずれかであること。
  6. タグ参照が有効かtagIDs が指す idtags に実在すること(存在しないタグを指す「孤立参照」は不可)。
  7. id の重複なしtags 内、tasks 内それぞれで id が重複していないこと。
エラー表示はシンプルです アプリ側のエラー表示は「取り込めませんでした」といった汎用メッセージで、どの行・どのフィールドが原因かまでは表示しません。原因を探すときは、このページの文法と照らし合わせて確認してください。

07記入例(完成形)

タグ 2 件、タスク 2 件を含む、検証を通る最小の完成例です。

{
  "version": 2,
  "tags": [
    {
      "id": "7E3A9C12-4F8B-4D2E-9A11-0C5B6D7E8F90",
      "name": "運動",
      "colorHex": "#6AD08C"
    },
    {
      "id": "2B4D6F81-1C3E-4A5B-8D7F-9E0A1B2C3D4E",
      "name": "勉強",
      "colorHex": "#65A1DF"
    }
  ],
  "tasks": [
    {
      "id": "A1B2C3D4-E5F6-4A7B-8C9D-0E1F2A3B4C5D",
      "name": "ランニング 30 分",
      "isFavorite": false,
      "isCompleted": true,
      "isRecurring": true,
      "date": "2026-06-15",
      "tagIDs": ["7E3A9C12-4F8B-4D2E-9A11-0C5B6D7E8F90"]
    },
    {
      "id": "F0E1D2C3-B4A5-4968-8778-665544332211",
      "name": "英単語 20 個",
      "isFavorite": true,
      "isCompleted": false,
      "isRecurring": false,
      "date": "2026-06-15",
      "tagIDs": ["2B4D6F81-1C3E-4A5B-8D7F-9E0A1B2C3D4E"]
    }
  ]
}

08よくある質問

UUID はどう作ればいい?

既存のタグ・タスクをコピーして使い回さず、新規に作るときは UUID 生成ツール(オンラインの「UUID generator」など)で 8-4-4-4-12 桁の文字列を作ってください。大文字・小文字は区別されません。

コメント(//)は書ける?

書けません。このページのサンプル内の // … は説明用です。実際の JSON にコメントは入れられないので、保存前に削除してください。

末尾カンマは付けていい?

付けられません。配列やオブジェクトの最後の要素のうしろにカンマ(,)を残すと、ルール 1(JSON 解析)で弾かれます。

タグを付けたくないタスクは?

"tagIDs": [] と空配列にします。キー自体を消すことはできません。

編集が取り込まれませんでした。

このページの 7 つのルールを上から順に確認してください。特に多いのは、末尾カンマ・引用符の閉じ忘れ(ルール 1)、colorHex のスペルや大文字小文字(ルール 5)、存在しないタグを tagIDs に書いてしまう(ルール 6)です。