前回はkitacaエリアの運転状況だったので、今回は各駅運行情報のjsonの仕様を分析します。
独自研究を含んでおり、内容が正確ではない可能性があります。
誤りがありましたら、コメント等で報告をお願いします。
JR北海道の運行情報の種類
JR北海道の運行情報の種類
JR北海道の運行情報ページは、jsonを使用して表示しています。
また、3種類に分かれています。
列車運行情報
今日と明日の運行情報をエリア(路線)ごとに示してくれます。
事前に決まっている運行状況(大雪による減便等)や大幅な遅れ(30分以上)、運休(故障・事故等)でない限り更新されません。
https://www3.jrhokkaido.co.jp/webunkou/index.html
各駅運行情報
今日と明日の運行情報を駅ごとに示してくれます。
運休・部分運休を示してくれますが、列車の遅れは反映されません。
https://www3.jrhokkaido.co.jp/webunkou/stationlist.html
Kitacaエリア(札幌近郊)列車運転状況
路線ごとではなく各列車ごとの運転状況を示してくれます。
ただし、Kitacaエリア(小樽〜苫小牧・岩見沢間、学園都市線の札幌近郊地域)のみと限られています。
各駅運行状況 jsonの仕様
運行状況ページでは主に2種類のjsonを組み合わせて表示しているようです。
core.json
札幌駅(駅番号:091)の場合
今日と明日の方面別の時刻表が載っています。
駅ごとにURLが異なり、駅番号が必要です。
URLの形が、https://www3.jrhokkaido.co.jp/webunkou/data/timetable/core/(駅番号)_core.json
となっています。
駅番号は3桁の半角数字で、eki_master.json から取得できます。
そのため、札幌駅の場合(駅番号:091)は https://www3.jrhokkaido.co.jp/webunkou/data/timetable/core/091_core.json
となっています。
jsonは、以下のような構造になっています。
├── today
│ ├── datatext //日付 M/D
│ └── timetable(路線・方面別に分かれています)
│ ├── rosen //路線
│ ├── homen //方面
│ └── trains(列車ごとに分かれています)
│ ├── cbango //運用番号
│ ├── hour //発車時
│ ├── min //発車分
│ ├── name //列車名
│ ├── type //列車種別(数字)
│ ├── typeText //列車種別(文字列)
│ ├── typesingle //列車種別(一文字)
│ ├── shaTime //発車時刻
│ ├── shuEki //終着駅
│ ├── shuEkiSimple //終着駅(一文字)
│ └── ryosu //両数
└── tomorrow
(以下略)
trainsの中身は下のようになっています。
{
"cbango": "3827M",
"hour": "09",
"min": "10",
"name": "エアポート85号",
"type": "2",
"typeText": "快速",
"typeSimple": "快",
"shaTime": "09:10",
"shuEki": "小樽",
"shuEkiSimple": "小",
"ryosu": 6
}
また、typeは ressha_type_master.json より、8種類に分かれています。
分類は以下の通りです。
key | value |
---|---|
1 | 特急 |
2 | 快速 |
3 | 普通 |
4 | 北海道新幹線 |
5 | 特別快速 |
6 | ライナー |
7 | 臨時列車 |
8 | 快速(札幌〜手稲・小樽間普通) |
now.json
最新の運転状況が載っています。
駅ごとにURLが異なり、駅番号が必要です。
URLの形が、https://www3.jrhokkaido.co.jp/webunkou/data/timetable/now/(駅番号)_now.json
となっています。
駅番号は3桁の半角数字で、eki_master.json から取得できます。
そのため、札幌駅の場合(駅番号:091)は https://www3.jrhokkaido.co.jp/webunkou/data/timetable/now/091_now.json
となっています。
jsonは以下のような構造になっています。
├── time //アクセス時刻
├── timeEn //アクセス時刻(英語)
├── timeTc //アクセス時刻(中国語)
├── timeSc //アクセス時刻(中国語)
└── timeKr //アクセス時刻(韓国語)
├── today
│ ├── cbango //運用番号
│ ├── status //状態コード
│ ├── statusDetail //状態
│ ├── statusDetailEn //状態(英語)
│ ├── statusDetailSc //状態(中国語)
│ ├── statusDetailTc //状態(中国語)
│ └── statusDetailKr //状態(韓国語)
└── tomorrow(以下略)
core.jsonとは違い、列車が方向別に分かれていません。
運用番号がキーとなっています。
列車が運休になった場合、jsonは以下のような表示になります。
{
"cbango": "71D",
"status": 0,
"statusDetail": "全区間運休 (札幌~網走 間)",
"statusDetailEn": "All sections cancelled (between Sapporo and Abashiri)",
"statusDetailSc": "全区间停驶 (札幌~网走 之间)",
"statusDetailTc": "全區間停駛 (札幌~網走 之間)",
"statusDetailKr": "전 구간 운행 중지 (삿포로~아바시리 구간)"
}
通常時、status
は 1
になっていますが、運休時は 0
になります。
編集後記
今回は、各駅運行情報のjsonの構造について分析しました。
kitacaエリア運転情報と違い、遅れが表示されませんが、運用番号・両数が分かるのが特徴です。