TOMLの複数行文字列とJSONエスケープ
TOMLの複数行文字列オプションをマスター:基本複数行文字列とリテラル複数行文字列。適切なエスケープシーケンスでJSONにどう変換されるかを学びます。
Advanced TOML
詳細な説明
TOMLはJSONの単一行文字列(エスケープシーケンス付き)よりもはるかに読みやすい2種類の複数行文字列を提供します。長いテキスト、テンプレート、埋め込みコードを含む設定ファイルでこれらを理解することは不可欠です。
基本複数行文字列(トリプルダブルクォート):
description = """
This is a multiline string.
It can span multiple lines.
Special characters like \n are processed."""
JSONに変換すると:
{
"description": "This is a multiline string.\nIt can span multiple lines.\nSpecial characters like \n are processed."
}
""" の直後の改行はトリムされます。後続の改行はJSONで \n になります。
リテラル複数行文字列(トリプルシングルクォート):
regex = '''
\d{3}-\d{2}-\d{4}
'''
winpath = '''
C:\Users\admin\Documents
'''
JSONに変換すると:
{
"regex": "\\d{3}-\\d{2}-\\d{4}\n",
"winpath": "C:\\Users\\admin\\Documents\n"
}
リテラル文字列では、バックスラッシュはエスケープ文字として扱われません。そのまま保持されます。正規表現パターンやWindowsファイルパスに最適です。
行末バックスラッシュ(行の継続):
long_text = """\
The quick brown \
fox jumps over \
the lazy dog."""
行末のバックスラッシュは改行と次の行の先頭の空白をトリムし、"The quick brown fox jumps over the lazy dog." を生成します。
TOML文字列型の比較:
| 型 | 構文 | エスケープ | 複数行 |
|---|---|---|---|
| 基本 | "..." |
あり | 不可 |
| リテラル | '...' |
なし | 不可 |
| 基本複数行 | """...""" |
あり | 可 |
| リテラル複数行 | '''...''' |
なし | 可 |
JSONの複数行文字列をTOMLに変換する場合:
JSON文字列に \n 文字が含まれる場合、優れたコンバーターはTOMLの複数行構文を使用して可読性を向上させます。バックスラッシュを含む文字列(パス、正規表現)はダブルエスケープを避けるためにリテラル文字列が有効です。
ユースケース
可読性が重要なTOML設定ファイルにSQLクエリ、シェルスクリプト、正規表現パターンを埋め込み、JSON設定を解析するアプリケーションで消費するためにJSONに変換する場合。