Перейти к содержимому
LeedyBox
Поддержать

Конвертер регистра (camelCase, snake_case …)

Преобразуйте имена построчно или переименуйте все ключи JSON-документа в camelCase, PascalCase, snake_case, kebab-case и другие стили.

Все стили для первой строки

Проверяйте результаты перед использованием. Инструмент предоставляется «как есть», без гарантий, и результаты могут быть неполными или неверными. Условия использования

Границы слов определяются автоматически, аббревиатуры нормализуются (например, userID становится userId). Переименование ключей может нарушить работу кода, API или сопоставлений базы данных, которые зависят от исходных имён.

Как пользоваться

  1. Оставив в списке «Применить к» значение «Каждой строке текста», вставьте или введите имена в поле «Ввод», по одному в строке. Каждая строка преобразуется отдельно, а пустые строки, а также пробелы и табуляции в начале или в конце строки сохраняются.
  2. Выберите стиль в списке «Конвертировать в», например camelCase, snake_case или CONSTANT_CASE. Результат обновляется по мере ввода или при изменении параметров, поэтому кнопки преобразования нет.
  3. Чтобы переименовать ключи JSON-документа, выберите в списке «Применить к» значение «Ключам JSON (значения без изменений)» и вставьте документ целиком. Ключи во вложенных объектах и массивах тоже переименовываются.
  4. В режиме «Каждой строке текста» в блоке «Все стили для первой строки» первая строка ввода, которая не пуста и состоит не только из пробельных символов, показана во всех десяти стилях, чтобы вы могли сравнить их, прежде чем выбрать.
  5. Проверьте поле «Результат» и нажмите «Копировать результат».

Частые вопросы

Отправляется ли куда-нибудь введённый текст?

Нет. Преобразование выполняется в вашем браузере с помощью JavaScript, а введённые имена или JSON не отправляются в LeedyBox.

Как инструмент определяет, где заканчивается одно слово и начинается следующее?

Новое слово начинается там, где за строчной буквой или цифрой следует заглавная (fooBar, user2Name), перед последней заглавной буквой в серии заглавных, если за ней идёт строчная (XMLHttp делится на XML и Http), а также на любом символе, который не является буквой или цифрой, например на пробеле, подчёркивании, дефисе или точке. Переход между буквами и цифрами сам по себе не начинает новое слово, поэтому base64Encode в snake_case становится base64_encode, а user2name остаётся одним словом.

Почему при обратном преобразовании не получается исходное имя?

Часть информации по пути теряется. Регистр каждого слова задаётся заново по правилам выбранного стиля, поэтому 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. Инструмент предназначен для имён и идентификаторов, а не для предложений.

Что происходит с ключами JSON вроде _id, @type или $ref?

Символ в начале ключа считается разделителем, поэтому удаляется: в camelCase _id становится id, @type — type, а $ref — ref. Ключ, состоящий только из символов, например $, сохраняет своё имя. Если два ключа в одном объекте получают одинаковое имя, например _id и id или user_name и userName, инструмент показывает ошибку с именами обоих ключей и путём к их объекту (например, $ для верхнего уровня) и ничего не преобразует, так что ни одно значение не перезаписывается.

Меняет ли режим JSON что-нибудь, кроме ключей?

Документ разбирается и записывается заново с отступом в два пробела, поэтому пробелы и переносы строк в нём могут измениться. Числа проходят через JavaScript: 1.0 записывается как 1, а 1e2 — как 100, целые числа больше 9007199254740991 и десятичные дроби с большим количеством цифр могут округляться, а число, слишком большое для JavaScript, например 1e400, превращается в null. Некоторые escape-последовательности в строках записываются обычными символами, например \u00e9 как é и \/ как /. Ключи, которые являются целыми числами меньше 4294967295 без ведущего нуля или становятся ими, например "2" или "_3", перемещаются в начало своего объекта в порядке возрастания. Если один и тот же ключ встречается в объекте дважды, сохраняется только последнее значение, без предупреждения. Ввод должен быть строгим JSON, поэтому комментарии и завершающие запятые вызывают ошибку.

Работает ли инструмент с буквами с диакритикой и нелатинскими алфавитами?

Буквы любой письменности считаются символами слова, а буква с диакритикой, записанная одним символом, например é, обрабатывается так же, как любая другая буква. В письменностях без деления на заглавные и строчные буквы, таких как корейская, китайская и японская, символы остаются без изменений, и выбранному стилю следуют только разделители между словами. Перевод в верхний и нижний регистр выполняется по общим правилам Unicode, поэтому ß в UPPER CASE становится SS, а заглавная İ в нижнем регистре становится обычной i. Для турецких и азербайджанских имён включите «Турецкие буквы»: тогда I становится ı, а i — İ. Комбинируемые знаки, например тоновые знаки тайского письма, знаки гласных в тайском и хинди или диакритический знак, записанный отдельным символом, остаются при своей букве. Текст, в котором слова не разделяются пробелами, например тайский, китайский или японский, делится на части только там, где есть пробелы или другие разделители.