ISO 8601形式でJSONをフォーマットする方法


JSONデータをISO 8601形式にフォーマットするためには、次の手順を実行します。

  1. 日付と時刻の値をISO 8601形式に変換します。例えば、"2024-02-03T10:30:00+09:00"のような形式です。この形式は、年、月、日、時、分、秒、およびオフセット(タイムゾーンのオフセット)を表します。

  2. JSONデータに含まれる日付と時刻の値を、ISO 8601形式で表現します。これには、日付と時刻の値を文字列に変換し、ISO 8601形式の文字列として代入する必要があります。

以下に、Python言語を使用したJSONデータのISO 8601形式への変換の例を示します。

import json
from datetime import datetime
def convert_to_iso8601(data):
    if isinstance(data, dict):
        for key, value in data.items():
            data[key] = convert_to_iso8601(value)
    elif isinstance(data, list):
        for i in range(len(data)):
            data[i] = convert_to_iso8601(data[i])
    elif isinstance(data, str):
        try:
            datetime_obj = datetime.fromisoformat(data)
            data = datetime_obj.isoformat()
        except ValueError:
            pass
    return data
# JSONデータの例
json_data = {
    "name": "John",
    "birthDate": "1990-01-01T12:00:00Z",
    "lastLogin": "2024-02-03T10:30:00+09:00"
}
# ISO 8601形式に変換
formatted_data = convert_to_iso8601(json_data)
# 変換後のデータを表示
print(json.dumps(formatted_data, indent=4))

上記のコードでは、convert_to_iso8601という再帰的な関数を定義しています。この関数は、JSONデータを走査し、文字列として表された日付と時刻の値をISO 8601形式に変換します。変換後のデータは、json.dumps関数を使用して整形されたJSON文字列として表示されます。

この方法を使ってJSONデータをISO 8601形式にフォーマットすることができます。これにより、日付と時刻の値を一貫した形式で表現し、データの相互運用性を向上させることができます。