0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

都道府県名と県庁所在地を取得できるJSON APIの使い方まとめ(自作API)

0
Last updated at Posted at 2026-03-15

都道府県名と県庁所在地を取得できるJSON APIの使い方まとめ

日本の都道府県名と県庁所在地をまとめて扱いたいときに便利な、シンプルなJSON APIを用意しました。
フロントエンドやPHP、学習用データ、クイズアプリなどで使いやすい構成です。

今回は、以下のAPIの仕様と呼び出し方法をまとめます。

https://sunstripe.main.jp/api/japanList

このURLはJSONを返すエンドポイントです。 sunstripe.main.jp - 都道府県API


できること

このAPIでは、都道府県と県庁所在地について、次のような表記をまとめて取得できます。

  • 正式表記
  • 県名のみの表記
  • ひらがな
  • ローマ字
  • 県庁所在地
  • 市区町村あり・なしの表記違い

たとえば、北海道なら次のようなデータを取得できます。

{
  "prefectures_full": "北海道",
  "prefectures": "北海道",
  "prefectures_hiragana": "ほっかいどう",
  "prefectures_romaji": "hokkaido",
  "prefectures_english": "",
  "capital_full": "札幌市",
  "capital": "札幌",
  "capital_hiragana": "さっぽろ",
  "capital_romaji": "sapporo",
  "capital_english": ""
}

データ構造

レスポンスは配列形式になっていて、各要素が1都道府県分のデータです。

また、先頭には項目名の説明用データが入っています。

項目一覧

キー 内容
prefectures_full 都道府県の正式名称
prefectures 「県」「府」「都」などを省いた表記
prefectures_hiragana 都道府県名のひらがな
prefectures_romaji 都道府県名のローマ字
prefectures_english 英語表記
capital_full 市や区まで含めた県庁所在地
capital 市区町村表記を省いた県庁所在地
capital_hiragana 県庁所在地のひらがな
capital_romaji 県庁所在地のローマ字
capital_english 英語表記(現在は、空)

レスポンス例

一部を抜粋するとこんな感じです。

[
  {
    "prefectures_full": "都道府県 県あり",
    "prefectures": "都道府県 県なし",
    "prefectures_hiragana": "都道府県 ひらがな",
    "prefectures_romaji": "都道府県 ローマ字",
    "prefectures_english": "",
    "capital_full": "市区町村あり",
    "capital": "市区町村ありなし",
    "capital_hiragana": "県庁所在地 ひらがな",
    "capital_romaji": "県庁所在地 ローマ字",
    "capital_english": ""
  },
  {
    "prefectures_full": "北海道",
    "prefectures": "北海道",
    "prefectures_hiragana": "ほっかいどう",
    "prefectures_romaji": "hokkaido",
    "prefectures_english": "",
    "capital_full": "札幌市",
    "capital": "札幌",
    "capital_hiragana": "さっぽろ",
    "capital_romaji": "sapporo",
    "capital_english": ""
  },
  {
    "prefectures_full": "青森県",
    "prefectures": "青森",
    "prefectures_hiragana": "あおもり",
    "prefectures_romaji": "aomori",
    "prefectures_english": "",
    "capital_full": "青森市",
    "capital": "青森",
    "capital_hiragana": "あおもり",
    "capital_romaji": "aomori",
    "capital_english": ""
  }
]

JavaScriptで呼び出す

まずはブラウザで使う例です。

fetch("https://sunstripe.main.jp/api/japanList")
  .then(response => {
    if (!response.ok) {
      throw new Error("APIの取得に失敗しました");
    }
    return response.json();
  })
  .then(data => {
    console.log(data);

    // 先頭は説明行なので除外したい場合
    const prefectures = data.slice(1);

    prefectures.forEach(item => {
      console.log(
        `${item.prefectures_full} の県庁所在地は ${item.capital_full} です`
      );
    });
  })
  .catch(error => {
    console.error("エラー:", error);
  });

特定の都道府県だけ取得したい場合

fetch("https://sunstripe.main.jp/api/japanList")
  .then(response => response.json())
  .then(data => {
    const prefectures = data.slice(1);
    const tokyo = prefectures.find(item => item.prefectures === "東京");

    console.log(tokyo);
  });

PHPで呼び出す

PHPなら file_get_contents() でシンプルに取得できます。

<?php

$url = "https://sunstripe.main.jp/api/japanList";
$json = file_get_contents($url);

if ($json === false) {
    die("APIの取得に失敗しました");
}

$data = json_decode($json, true);

if ($data === null) {
    die("JSONの解析に失敗しました");
}

// 先頭の説明行を除外
$prefectures = array_slice($data, 1);

foreach ($prefectures as $item) {
    echo $item["prefectures_full"] . " の県庁所在地は " . $item["capital_full"] . "<br>";
}
?>

特定の都道府県を探す例

<?php

$url = "https://sunstripe.main.jp/api/japanList";
$json = file_get_contents($url);
$data = json_decode($json, true);

$prefectures = array_slice($data, 1);

$result = null;
foreach ($prefectures as $item) {
    if ($item["prefectures"] === "大阪") {
        $result = $item;
        break;
    }
}

echo "<pre>";
print_r($result);
echo "</pre>";
?>

jQueryで呼び出す

jQueryを使う場合はこんな形です。

$.getJSON("https://sunstripe.main.jp/api/japanList", function(data) {
  const prefectures = data.slice(1);

  prefectures.forEach(function(item) {
    console.log(item.prefectures_full + " / " + item.capital_full);
  });
}).fail(function() {
  console.log("APIの取得に失敗しました");
});

使いどころ

このAPIは、次のような用途に向いています。

  • 都道府県クイズ
  • 県庁所在地クイズ
  • 学習サイト
  • ひらがな表記つきの子ども向け教材
  • ローマ字学習
  • フォームの選択肢生成
  • 地域データの一覧表示

使うときのポイント

1. 先頭行は説明データ

このAPIは先頭に説明用の1件が入っています。
実際の都道府県データだけ使いたい場合は、slice(1)array_slice($data, 1) で除外すると扱いやすいです。

2. 英語表記は空文字

サンプルでは prefectures_englishcapital_english は空文字になっています。
将来的に英語表記を追加したい場合の拡張余地として使えます。

3. 表記揺れに対応しやすい

capital_fullcapital が分かれているので、

  • 札幌市 として表示したい
  • 札幌 として表示したい

の両方に対応できます。


画面に一覧表示するサンプル

HTMLに一覧を出したい場合の簡単な例です。

<ul id="prefectureList"></ul>

<script>
fetch("https://sunstripe.main.jp/api/japanList")
  .then(response => response.json())
  .then(data => {
    const prefectures = data.slice(1);
    const list = document.getElementById("prefectureList");

    prefectures.forEach(item => {
      const li = document.createElement("li");
      li.textContent = `${item.prefectures_full}${item.prefectures_hiragana}): ${item.capital_full}`;
      list.appendChild(li);
    });
  });
</script>

まとめ

都道府県API は、都道府県と県庁所在地をシンプルに取得できるAPIです。
特に、

  • 正式名称
  • ひらがな
  • ローマ字
  • 市区町村あり/なし

がまとめて入っているので、教育系や地域系のアプリに使いやすいと思います。

API URLはこちらです。

https://sunstripe.main.jp/api/japanList.php

このURLはJSONレスポンスを返す公開エンドポイントです。 sunstripe.main.jp - 都道府県API


関連記事


🎓 制作チーム「サンストライプ」について

sunstripe_logo.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?