Конвертер регистра (camelCase, snake_case …)
Преобразуйте имена построчно или переименуйте все ключи JSON-документа в camelCase, PascalCase, snake_case, kebab-case и другие стили.
Как пользоваться
- Оставив в списке «Применить к» значение «Каждой строке текста», вставьте или введите имена в поле «Ввод», по одному в строке. Каждая строка преобразуется отдельно, а пустые строки, а также пробелы и табуляции в начале или в конце строки сохраняются.
- Выберите стиль в списке «Конвертировать в», например camelCase, snake_case или CONSTANT_CASE. Результат обновляется по мере ввода или при изменении параметров, поэтому кнопки преобразования нет.
- Чтобы переименовать ключи JSON-документа, выберите в списке «Применить к» значение «Ключам JSON (значения без изменений)» и вставьте документ целиком. Ключи во вложенных объектах и массивах тоже переименовываются.
- В режиме «Каждой строке текста» в блоке «Все стили для первой строки» первая строка ввода, которая не пуста и состоит не только из пробельных символов, показана во всех десяти стилях, чтобы вы могли сравнить их, прежде чем выбрать.
- Проверьте поле «Результат» и нажмите «Копировать результат».
Частые вопросы
Отправляется ли куда-нибудь введённый текст?
Нет. Преобразование выполняется в вашем браузере с помощью 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 — İ. Комбинируемые знаки, например тоновые знаки тайского письма, знаки гласных в тайском и хинди или диакритический знак, записанный отдельным символом, остаются при своей букве. Текст, в котором слова не разделяются пробелами, например тайский, китайский или японский, делится на части только там, где есть пробелы или другие разделители.