ケース変換(camelCase、snake_case …)
名前を1行ずつ変換したり、JSON ドキュメントのすべてのキーを camelCase、PascalCase、snake_case、kebab-case などに変換したりできます。
使い方
- 「適用対象」を「テキストの各行」のままにして、「入力」に名前を 1 行に 1 つずつ貼り付けるか入力します。各行は個別に変換され、空行や、行頭・行末の空白とタブはそのまま残ります。
- 「変換先」で camelCase、snake_case、CONSTANT_CASE などのスタイルを選びます。入力やオプションの変更に合わせて出力が更新されるため、変換ボタンはありません。
- JSON ドキュメントのキー名を変換するには、「適用対象」を「JSON のキー(値はそのまま)」にして、ドキュメント全体を貼り付けます。ネストしたオブジェクトや配列の中にあるキーも変換されます。
- 「テキストの各行」モードでは、「1行目をすべてのスタイルで表示」の欄に、入力のうち空行ではない最初の行が 10 種類すべてのスタイルで表示されるので、比較してからスタイルを選べます。
- 「出力」を確認してから「結果をコピー」をクリックします。
よくある質問
入力したテキストはどこかに送信されますか?
いいえ。変換はブラウザ内の JavaScript で行われ、入力した名前や JSON は LeedyBox にアップロードされません。
単語の区切りはどのように判定されますか?
新しい単語が始まるのは、小文字または数字の後に大文字が続く位置(fooBar、user2Name)、大文字が連続してその後に小文字が続く場合は、連続した大文字のうち最後の大文字の前(XMLHttp は XML と Http に分かれます)、そして空白、アンダースコア、ハイフン、ドットなど、文字や数字以外のものがある位置です。文字と数字が切り替わるだけでは新しい単語にならないため、base64Encode は snake_case では base64_encode になり、user2name は 1 つの単語のままです。
もう一度変換しても元の名前に戻らないのはなぜですか?
変換の過程で失われる情報があるためです。各単語の大文字・小文字は選んだスタイルに合わせて付け直されるため、parseHTML は snake_case では parse_html になり、それを camelCase に戻すと parseHtml になります。また、区切り文字がなくなると数字は直前の単語とつながるため、total_amount_2 は camelCase で totalAmount2 になり、それを snake_case にすると total_amount2 になります。完全に元に戻せる必要がある場合は、元の名前を残しておいてください。
句読点が消えたのはなぜですか?また、Title Case ですべての単語が大文字で始まるのはなぜですか?
文字や数字以外のものは、すべて単語の区切りとして扱われます。句読点や記号は出力にコピーされず、単語の間にはスタイル固有の区切り文字がある場合にだけ、その区切り文字が入ります。そのため "Hello, world!" は lower case では "hello world" になり、don't は don t になります。Title Case では of や the のような短い単語も含めて各単語の先頭を大文字にし、残りを小文字にするため、NASA は Nasa に、iPhone は I Phone になります。このツールは文章ではなく、名前や識別子の変換を想定しています。
_id、@type、$ref のような JSON キーはどうなりますか?
先頭の記号は区切りとみなされるため削除されます。camelCase では _id は id に、@type は type に、$ref は ref になります。$ のように記号だけでできたキーは名前がそのまま残ります。同じオブジェクト内の 2 つのキーが同じ名前になる場合(たとえば _id と id、user_name と userName)は、両方のキー名とそのオブジェクトのパス(最上位なら $ など)を示すエラーを表示して何も変換しないため、値が上書きされることはありません。
JSON モードでは、キー以外にも変わるものはありますか?
ドキュメントは一度解析され、スペース 2 つのインデントで書き直されるため、空白や改行の位置が変わることがあります。数値は JavaScript を通して処理されるため、1.0 は 1、1e2 は 100 と書かれ、9007199254740991 より大きい整数や桁数の多い小数は丸められることがあり、1e400 のように JavaScript で扱えないほど大きい数値は null になります。文字列内の一部のエスケープは通常の文字として書き出され、たとえば \u00e9 は é に、\/ は / になります。"2" や "_3" のように、4294967295 未満で先頭に 0 のない整数であるキーや、変換後にそうなるキーは、オブジェクト内でほかのキーより前に移動し、数値の順に並びます。1 つのオブジェクトに同じキーが 2 回現れた場合は、警告なしに最後の値だけが残ります。入力は厳密な JSON である必要があるため、コメントや末尾のカンマがあるとエラーになります。
アクセント付きの文字やラテン文字以外の文字にも対応していますか?
どの文字体系の文字も単語の一部として扱われ、é のように 1 つの文字として保存されたアクセント付き文字も、ほかの文字と同じように処理されます。韓国語、中国語、日本語のように大文字と小文字の区別がない文字体系では文字はそのまま残り、単語間の区切りだけが選んだスタイルに従います。大文字・小文字の変換は Unicode の一般的な規則に従うため、UPPER CASE では ß は SS になり、大文字の İ は小文字にすると通常の i になります。トルコ語やアゼルバイジャン語の名前には「トルコ語の文字規則」をオンにしてください。I は ı に、i は İ になります。タイ語の声調記号、タイ語やヒンディー語の母音記号、別の文字として保存されたアクセントなどの結合文字は、前の文字に付いたまま保たれます。タイ語、中国語、日本語のように単語の間を空けずに書く文章は、空白やほかの区切りがある位置でだけ分割されます。