以下は、アプリがダウンロードするJSONファイルの仕様書(例)です。
このJSONは、2ちゃんねるのアスキーアート長篇作品のデータを格納しており、各作品はディレクトリ単位で管理され、ダウンロード時にアプリ側でファイルURLを組み立てます。
JSONファイルのルートはオブジェクト形式で、以下のキーを含みます。
| キー | 型 | 説明 |
|---|---|---|
| name | string | コレクション全体のタイトル(例:「やる夫まとめ」) |
| rootURL | string | 作品ファイルのダウンロード時のベースURL。各ディレクトリ内のファイル名と組み合わせて完全なURLを構築する。 |
| tags | array of string | コレクション全体に関連するタグのリスト。作品の分類やフィルタリングに使用される。 |
| dirs | array of object | 作品ディレクトリ(カテゴリ)ごとの情報を格納する配列。 |
{
"name": "やる夫まとめ",
"rootURL": "https://yaruojson.github.io/yaruojson/",
"tags": ["まとめ", "アスキーアート"],
"dirs": [ ... ]
}
dirs 配列は、各ディレクトリ(カテゴリ・作品群)を表すオブジェクトのリストです。各オブジェクトは以下のキーを持ちます。
| キー | 型 | 説明 |
|---|---|---|
| name | string | ディレクトリの名称。各カテゴリや作品集のタイトル。 |
| tags | array of string | このディレクトリに関連するタグ。複数の分類やジャンルを設定可能。 |
| files | array of string | このディレクトリ内に含まれる各作品ファイルの名前。各ファイルはテキストデータ(アスキーアート)のファイル名を示す。 |
※アプリ側では、JSON内の各ディレクトリオブジェクトからファイル名(文字列)のリストを受け取り、LocalFile 型(初期値 readNum=0、fav=false など)として内部管理します。また、ディレクトリの rootName および rootURL は、ルートオブジェクトの name と rootURL を継承して設定されます。
{
"name": "作品カテゴリ1",
"tags": ["タグA", "タグB"],
"files": [
"作品1.txt",
"作品2.txt",
"作品3.txt"
]
}
以下は、上記仕様に沿ったサンプルJSONです。
{
"name": "やる夫まとめ",
"rootURL": "https://yaruojson.github.io/yaruojson/",
"tags": ["まとめ", "アスキーアート"],
"dirs": [
{
"name": "作品カテゴリ1",
"tags": ["タグA", "タグB"],
"files": [
"作品1.txt",
"作品2.txt"
]
},
{
"name": "作品カテゴリ2",
"tags": ["タグC"],
"files": [
"作品3.txt",
"作品4.txt",
"作品5.txt"
]
}
]
}
rootURL に各ディレクトリの name とファイル名(files 内の文字列)を連結することで、ファイルの完全なURLを構築します。以上が、YaRU_Viewerアプリが使用するJSONファイルの仕様書です。
この仕様に基づいて、アプリは指定されたURLからJSONを取得し、ディレクトリごとに分類されたアスキーアートテキストデータをダウンロード・表示します。