メインコンテンツまでスキップ

JSON化データについて

概要

Project DM-D.S.Sでは気象庁防災情報XMLフォーマットについて、取り扱いの容易化を目的としたJSON化を行っています。

XMLデータをJSON化するデータは利用頻度の高いデータとし、独自のスキーマ定義に沿った変換を行うもとしています。

変換に伴うリスク

XMLデータをJSON化する際、変換する時間が最大1秒程度(基となるXMLデータの配信遅延はありません)かかります。 また、変換に失敗する恐れや、想定していないデータの配信が発生することがあります。

配信したJSONデータは、スキーマチェックを常時行い、スキーマ通りに変換が行われていることを確認しています。

APIの取り扱い

Telegram List v2WebSocket v2でJSON化データを取得することができます。

JSON化データを取得する方法はAPIのリファレンスを参照してください。

JSON スキーマ

JSONスキーマの型定義については、API v2 #型表現を参照ください。

配信区分スキーマ名対象とするデータ種類コードバージョン
緊急地震(予報・警報)eew-informationVXSEii (ii = 42-45, 47)1.0.0
地震・津波関連earthquake-informationVXSE51, VXSE52, VXSE53, VXSE62, VZSE401.1.0
地震・津波関連earthquake-explanationVXSE561.0.0
地震・津波関連earthquake-countsVXSE601.0.0
地震・津波関連earthquake-hypocenter-updateVXSE611.0.0
地震・津波関連earthquake-nankaiVYSE50, VYSE51, VYSE521.0.0
地震・津波関連tsunami-informationVTSE41, VTSE51, VTSE521.0.0
火山関連volcano-informationVFVOii (ii = 50-56), VFSVii (ii = 50-61), VZVO401.0.0
気象警報・注意報関連weather-warningVPWW54, VPOA501.0.0
気象警報・注意報関連weather-informationVPZJ50, VPCJ50, VPFJ50, VPSG50, VPZS50, VPTIii (ii = 50-52),
VPFT50, VMCJii (ii = 50-52)
1.0.0
気象警報・注意報関連weather-impact-societyVPZI50, VPCI501.0.1
気象警報・注意報関連weather-earlyVPAW511.0.0
気象警報・注意報関連weather-tornadoVPHW511.0.0
気象警報・注意報関連weather-typhoonVPTWii (ii = 60-65)1.0.0
気象警報・注意報関連weather-landslideVXWW501.0.0
気象警報・注意報関連weather-river-floodVXKOii (ii=50-89)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._originalIdString
JSON化電文を区別するユニーク384bitハッシュ
2._schemaObject
JSONスキーマ情報(内部利用)
2._1._schema.typeString
JSONスキーマ名
2._2._schema.versionString
JSONスキーマバージョン
3.typeString
情報名称(Control/Title部)
4.titleString
情報の標題(Head/Title部)
5.statusString
情報の運用状態、取りうる値は通常訓練試験
通常以外の情報については内部利用にとどめること
6.infoTypeString
情報の発表状態、取りうる値は発表訂正遅延取消
7.editorialOfficeString
情報の編集官署名
8.publishingOfficeArray<String>
情報の発表官署名又は組織名、複数入る場合がある
9.pressDateTimeISO8601Time
情報作成時刻
10.reportDateTimeISO8601Time
情報の発表時刻
11.targetDateTimeISO8601Time|Null
情報の基となった時刻、無い場合はNullとする
12.?targetDateTimeDubious情報によるString
情報の基となった時刻のあいまいさ
13.?targetDuration情報によるString
情報の予報期間
14.?validDateTime情報によるISO8601Time
情報の失効時刻
15.eventIdString|Null
現象ごとに割り振られたイベントID、無い場合はNullとする
16.serialNoString|Null
現象ごとに割り振られたイベントIDの発表番号、無い場合はNullとする
17.infoKindString
XMLデータのスキーマ名
18.infoKindVersionString
XMLデータのスキーマバージョン
19.headlineString|Null
情報の見出し、無い場合はNullとする