JSON化データについて
概要
Project DM-D.S.Sでは気象庁防災情報XMLフォーマットについて、取り扱いの容易化を目的としたJSON化を行っています。
XMLデータをJSON化するデータは利用頻度の高いデータとし、独自のスキーマ定義に沿った変換を行うもとしています。
変換に伴うリスク
XMLデータをJSON化する際、変換する時間が最大1秒程度(基となるXMLデータの配信遅延はありません)かかります。 また、変換に失敗する恐れや、想定していないデータの配信が発生することがあります。
配信したJSONデータは、スキーマチェックを常時行い、スキーマ通りに変換が行われていることを確認しています。 スキーマチェックエラー(一覧)
APIの取り扱い
Telegram List v2 と WebSocket v2でJSON化データを取得することができます。
JSON化データを取得する方法はAPIのリファレンスを参照してください。
JSON スキーマ
JSONスキーマの型定義については、API v2 #型表現を参照ください。
配信区分 | スキーマ名 | 対象とするデータ種類コード | バージョン |
---|---|---|---|
緊急地震(予報・警報) | eew-information | VXSEii (ii = 42-45, 47) | 1.0.0 |
地震・津波関連 | earthquake-information | VXSE51, VXSE52, VXSE53, VXSE62, VZSE40 | 1.1.0 |
地震・津波関連 | earthquake-explanation | VXSE56 | 1.0.0 |
地震・津波関連 | earthquake-counts | VXSE60 | 1.0.0 |
地震・津波関連 | earthquake-hypocenter-update | VXSE61 | 1.0.0 |
地震・津波関連 | earthquake-nankai | VYSE50, VYSE51, VYSE52, VYSE60 | 1.0.0 |
地震・津波関連 | tsunami-information | VTSE41, VTSE51, VTSE52 | 1.1.0 |
火山関連 | volcano-information | VFVOii (ii = 50-56), VFSVii (ii = 50-61), VZVO40 | 1.0.0 |
気象警報・注意報関連 | weather-warning | VPWW54, VPOA50 | 1.0.0 |
気象警報・注意報関連 | weather-information | VPZJ50, VPCJ50, VPFJ50, VPSG50, VPZS50, VPTIii (ii = 50-52), VPFT50, VMCJii (ii = 50-52) | 1.0.0 |
気象警報・注意報関連 | weather-impact-society | VPZI50, VPCI50 | 1.0.1 |
気象警報・注意報関連 | weather-early | VPAW51 | 1.0.0 |
気象警報・注意報関連 | weather-tornado | VPHW51 | 1.0.0 |
気象警報・注意報関連 | weather-typhoon | VPTWii (ii = 60-65) | 1.0.0 |
気象警報・注意報関連 | weather-landslide | VXWW50 | 1.0.0 |
気象警報・注意報関連 | weather-river-flood | VXKOii (ii=50-89) | 1.0.0 |
天気予報関連 | forecast-prefecture | VPFD51, VPFW50 | 1.0.0 |
天気予報関連 | forecast-warning-possibility | VPFD60, VPFW60 | 1.0.0 |
天気予報関連 | forecast-season | VPZK50, VPCK50 | 1.0.0 |
天気予報関連 | forecast-2week-temperature | VPCK70 | 1.0.0 |
天気予報関連 | forecast-weathermap | VZSA50, VZSA60, VZSF50, VZSF51, VZSF60, VZSF61 | 1.0.0 |
非現行版のバージョン
非現行版のバージョンも、電文によっては現在も配信中の場合があります。 各電文・スキーマごとの説明をご 参照ください。
配信区分 | スキーマ名 | 対象とするデータ種類コード | バージョン |
---|---|---|---|
地震・津波関連 | tsunami-information | VTSE41, VTSE51, VTSE52 | 1.0.0 |
気象警報・注意報関連 | weather-impact-society | VPZI50, VPCI50 | 1.0.0 |
スキーマバージョンの取り扱い
電文の改廃などにより表現拡張などを行うときに、JSONスキーマのバージョンを変更します。
バージョンについては、対象とするデータ種類コード以外の情報についても変更する場合があります。
スキーマバージョンは、予告なく変更する場合があります。
プログラム型定義と JSON Schema について
TypeScriptによる型定義が、 @dmdata/telegram-json-types にて公開しています。
また、NPMに公開しているパッケージに、型定義を JSON Schema に変換したファイルが同封されています。
Schema head
{
"_originalId": "...",
"_schema": {
"type": "earthquake-information",
"version": "1.0.0"
},
"type": "震源・震度に関する情報",
"title": "震源・震度情報",
"status": "通常",
"infoType": "発表",
"editorialOffice": "気象庁本庁",
"publishingOffice": [
"気象庁"
],
"pressDateTime": "2021-08-12T06:05:36Z",
"reportDateTime": "2021-08-12T15:05:00+09:00",
"targetDateTime": "2021-08-12T15:05:00+09:00",
"eventId": "20210812150301",
"serialNo": "1",
"infoKind": "地震情報",
"infoKindVersion": "1.0_1",
"headline": "12日15時02分ころ、地震がありました。",
"body": {}
}
階層 | フィールド | 出現条件 | 説明 |
---|---|---|---|
1. | _originalId | String JSON化電文を区別するユニーク384bitハッシュ | |
2. | _schema | Object JSONスキーマ情報(内部利用) | |
2._1. | _schema.type | String JSONスキーマ名 | |
2._2. | _schema.version | String JSONスキーマバージョン | |
3. | type | String 情報名称(Control/Title部) | |
4. | title | String 情報の標題(Head/Title部) | |
5. | status | String 情報の運用状態、取りうる値は 通常 、訓練 、試験 通常 以外の情報については内部利用にとどめること | |
6. | infoType | String 情報の発表状態、取りうる値は 発表 、訂正 、遅延 、取消 | |
7. | editorialOffice | String 情報の編集官署名 | |
8. | publishingOffice | Array<String> 情報の発 表官署名又は組織名、複数入る場合がある | |
9. | pressDateTime | ISO8601Time 情報作成時刻 | |
10. | reportDateTime | ISO8601Time 情報の発表時刻 | |
11. | targetDateTime | ISO8601Time|Null 情報の基となった時刻、無い場合はNullとする | |
12.? | targetDateTimeDubious | 情報による | String 情報の基となった時刻のあいまいさ |
13.? | targetDuration | 情報による | String 情報の予報期間 |
14.? | validDateTime | 情報による | ISO8601Time 情報の失効時刻 |
15. | eventId | String|Null 現象ごとに割り振られたイベントID、無い場合はNullとする | |
16. | serialNo | String|Null 現象ごとに割り振られたイベントIDの発表番号、無い場合はNullとする | |
17. | infoKind | String XMLデータのスキーマ名 | |
18. | infoKindVersion | String XMLデータのスキーマバージョン | |
19. | headline | String|Null 情報の見出し、無い場合はNullとする |