HJSON フォーマッター&バリデーター
ガイド
HJSON フォーマッター&バリデーター
HJSON(JSONのヒューマンフレンドリーなバリアント)を貼り付けて、コメント、未引用キー、文字列、複数行値、および終端カンマを許容するもので、その場で厳密なJSONに変換できます。このツールは逆方向の変換も実行します:厳密なJSONを貼り付けて、読みやすく編集しやすい未引用キーを含むクリーンなHJSONバージョンを取得できます。
入力中に逐次検証が行われ、構文エラーは行と列のヒントとともに即座に表示されます。すべての処理はブラウザ内で行われ、ファイルアップロードやサーバーとの通信、データのページ外送などは一切ありません。
使用方法
- 入力ボックスにHJSONまたは厳密なJSONを貼り付け、またはファイルをアップロードできます。
- 方向を選択 — HJSON → JSON 手動で編集された設定を整理するためには、または JSON → HJSON マシン生成されたJSONファイルをより読みやすく維持できるようにするためには。
- インデントの選択(2スペース、4スペース、タブ、またはJSON出力用の最小化)をします。
- オプションでネストされたオブジェクトのキーをアルファベット順に並べ替えることで、安定した差分を実現します。
- フォーマットされた出力コピー、または
.jsonまたは.hjsonファイル。
機能
- 2方向変換 — HJSONから厳密なJSONへ、そして逆に変換し、エラーを発生した行を正確に指摘します。
- 完全なHJSON構文 –
#,//と、/* */コメント;未引用キー;単行文字列の引用なし;トリプルクォートで囲まれた複数行文字列(スマートデント付き);終端およびオプションのカンマ。 - ブレースなしのルートオブジェクト — ルートレベル
key: valueペアが外側のブレースを持たない場合{ }ルートオブジェクトとして認識されます。 - クリーンな出力 — 2スペース、4スペース、タブ、または最小化インデントを選択;HJSON出力では識別子キーを未引用にし、差分を明確にします。
- 安定した順序 — ネストされたオブジェクトのキーをアルファベット順に並べ替えるオプションにより、フォーマットされた出力が繰り返し実行しても安定した差分を維持します。
- ローカルかつプライベート — 解析とフォーマットはすべてブラウザ内で行われ、アップロードは一切ありません。
HJSONを使用するべきタイミング
HJSONは、人間が手動で編集する設定ファイル(ビルドパイプライン、デプロイマニフェスト、CLIツールの設定、ゲーム設定など)に特に適しています。HJSONはJSONの厳密なスーパーセットであり、すべての有効なJSONはすでにHJSONとして有効です — そのため、段階的に導入できます。
マシン間データ交換(API、ストレージ、ネットワークプロトコル)には、厳密なJSONを維持してください。それは、すべてのパーサーにサポートされ、より小さい、曖昧さの少ない文法を持っています。HJSONをビルド時またはロード時にJSONに変換し、人間が友好的なソースファイルを編集できるようにします。
よくある質問
-
HJSONとは何か、そしてJSONとどう異なりますか?
HJSON(Human JSON)は、手編集用の設定に適したJSONの緩和バージョンです。コメント(#、//、/* */)、未引用キー、単行文字列の引用なし、複数行文字列のトリプルクォート、終端またはオプションのカンマを追加します。厳密なJSONは、すべてのそれらを禁止しており、機械解析の曖昧さを避けるためです。すべての有効なJSONドキュメントは、HJSONとして有効であるため、HJSONは厳密なスーパーセットです — そのため、段階的に導入できます。
-
HJSONはJSON5、JSONC、YAMLとどのように比較されますか?
JSON5はコメントと終端カンマを追加していますが、文字列を引用し、JavaScriptスタイルの識別子キーを必要とします。JSONC(コメント付きJSON)はのみ//と/* */コメントを追加します。YAMLは非常に緩和されていますが、大きな空白に依存しており、深層ネスト構造では誤りが発生しやすいです。HJSONはJSON5とYAMLの間にある:YAMLの読みやすさの大部分を備え、ブレースで構成された構造を持ち、誤ったインデントが意味を変えることはありません。
-
HJSONの複数行文字列とYAMLのブロックスケーラは同等ですか?
同じ目的を果たしていますが、メカニズムでは異なります。HJSONの複数行文字列はトリプルシングルクォート(''')で囲まれており、閉じる'''のインデントがすべての内部行のデントを決定します — これにより、ネストレベルを越えてブロックがポータブルになります。YAMLはリテラル(|)と折りたたみ(>)ブロックスケーラを提供し、終端改行のための別個の削除指示子(-、+)を持っています。HJSONの単一スタイルは、終端空白の制御が少ないという点でシンプルですが、制御力が劣ります。
-
HJSONは数値、ブール値、nullのパース方法を変えるのですか?
いいえ。整数、小数、科学記法の数値、ブール値、nullはJSONと同じルールでパースされます。区別ルールはシンプルです:未引用の値がJSONの数値、true、false、nullとして正確にパースできる場合、それらはそのプリミティブとしてパースされ、そうでない場合はその行の終わりまで延長される未引用文字列になります。
-
HJSONをJSONに変換する際にコメントを保持できますか?
標準的な意味ではできません — 基本的なJSONにはコメント構文がありませんので、忠実な変換はそれらを削除しなければなりません。一部のツールチェーンは、HJSONファイルをソースとして保持し、JSONをビルドアーテファクトとして生成する、または_コメントという親キーの下にコメントを保存する方法で対処します。コメントの保持が重要であれば、HJSONを編集可能なソースとして扱い、必要に応じてJSONを再生成するようにしてください。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
