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に変換する場合。

試してみる — TOML ↔ JSON Converter

フルツールを開く