IDを文字列として渡せるか確認
±9007199254740991を超える整数は、既定で十進文字列になります。数値型が必須なら拒否を選び、変換を止めて扱いを検討してください。符号付き64ビット範囲外の整数は常に拒否します。
JSONツール
サンプルには通常のテーブル、サーバーの配列、大きなIDがあります。日付と安全範囲外の整数は文字列になります。
TOMLからJSONに変換すると、設定ファイルをJSON対応のAPIやテストデータに渡せます。セクション名はオブジェクトの階層に、二重角括弧の[[table]]見出しはオブジェクトの配列になります。
TOML設定ファイルの変換だけで、CargoやPoetryの設定項目が正しいと判断することはできません。ここではデータの構造と型を扱い、アプリケーション固有の意味や依存関係は評価しません。
TOMLからJSONに変換する前に、各テーブルのスコープを解析します。[[servers]]の子テーブルは現在の配列要素に属し、引用された"api.version"は階層を増やさず一つのキーとして残ります。
プレビューには数値、整数から文字列、日付から文字列、nullへの置換を分けて表示します。大きな出力でもJSON Pointerと型の件数を見れば、受け取り側のスキーマと合うか確認できます。
±9007199254740991を超える整数は、既定で十進文字列になります。数値型が必須なら拒否を選び、変換を止めて扱いを検討してください。符号付き64ビット範囲外の整数は常に拒否します。
TOMLではinfやnanを記述できますが、JSONの数値にはありません。既定は拒否です。nullを明示的に選んだ場合だけ置換し、浮動小数点のオーバーフローも同じ方針で処理します。
自動変換は変更から350ミリ秒後に動きます。無効にすると変換ボタンかCtrl/Cmd+Enterを使えます。入力や設定が変わると出力操作を無効にし、プレビューは50件ずつ、最大500件まで表示します。
通常のテーブルとドット区切りキーは入れ子のオブジェクトになります。テーブル配列は順序を保ち、子テーブルは現在の親要素に付きます。空テーブルは{}、空配列は[]、混合型の配列もそのままです。
整数をまずBigIntで解析し、安全範囲を調べて出力型を決定します。16進・8進・2進表記や桁区切りは十進表記に統一します。大きな整数を文字列にする場合は、桁を浮動小数点数に丸めません。
オフセット付き日時は元のオフセットを残します。ローカル日時にタイムゾーンは追加せず、日付だけ・時刻だけの形も保ちます。時刻の精度はミリ秒までで、それより細かい小数秒は切り捨てられます。
構文エラーには入力の行・列を表示して該当行を強調します。数値方針によるエラーにはJSON Pointerを表示します。パス中の/は~1、~は~0となり、特殊文字を含むキーも区別できます。
逆方向は別のJSONからTOMLへのツールで扱います。TOMLからJSONに変換すると日付は文字列になり、コメントや数値の表記も失われるため、往復して元の文書が復元されるとは限りません。
TOML JSON変換の前に構文を解析し、失敗した行と列を示します。ただし完全なTOMLバリデーターではなく、日付やUnicodeの既知の例外があります。アプリケーションの設定項目の妥当性も別途確認してください。
smol-toml 1.8.0を使用し、TOML 1.1を対象にします。複数行のインラインテーブルなども解析しますが、実装の制限があります。日時はミリ秒精度で、一部の無効な日付が正規化されます。
JSONのデータモデルにはコメントがありません。解析後に値と構造から出力を作るため、コメントの場所や内容、元の空白は引き継ぎません。説明文が必要なら元の設定ファイルも保管してください。
JSONには日時型がないためです。ローカル日時に勝手に時差を付けず、明示されたオフセットは保ちます。ただし小数秒はミリ秒までです。文字列を日時として読む方法は受け取り側で決めてください。
想定と異なる変換結果がありましたか?