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 |
スキーマバージョンの取り扱い
電文の改廃などにより表現拡張などを行うときに、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 情報の運用状態、取りうる値は 通常 |