Форматировщик и оценщик Jsonnet

ДанныеРазработчикТекст
Реклама · УДАЛИТЬ?

Или

Параметры

Результаты проверки и оценки будут отображаться здесь.
Реклама · УДАЛИТЬ?

Гид

Форматировщик и оценщик Jsonnet

Форматировщик и оценщик Jsonnet

Вставьте исходный код Jsonnet и получите полностью оцененный результат JSON, или красиво отформатируйте исходный код. Эта программа работает полностью в вашем браузере, поэтому ваша конфигурация никогда не покидает страницу. Полезно для предварительного просмотра манифестов Kubernetes, дашбордов Grafana, сред Tanka или любой другой конфигурации, выраженной на языке Jsonnet.

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

  1. Вставьте код Jsonnet в поле ввода или перетащите .jsonnet/.libsonnet на загрузчик.
  2. Выбрать Оценка → JSON для вычисления результата или Форматирование источника Jsonnet для повторного отображения исходного кода с единообразным отступом.
  3. Выберите желаемый отступ (2 пробела, 4 пробела, табуляция или минифицированный).
  4. Опционально сортируйте ключи объектов по алфавиту или вынуждайте вывод строки в тех случаях, когда верхний уровень оценивается как простая строка.
  5. Скопируйте результат одним кликом или загрузите его как .json/.jsonnet.

Возможности

  • Живая оценка – Источник Jsonnet анализируется и оценивается в режиме реального времени при вводе, с задержкой для обеспечения отзывчивости.
  • Наследование объектов – Полная поддержка операторов поля +:, ::и ::: , а также self и super ссылок.
  • Понимание – Оба массивные и объектные понимания. [expr for x in xs if cond] Функции и замыкания {[k]: v for k in keys} – Функции на верхнем уровне и встроенные функции с позиционными, именованными и по умолчанию аргументами.
  • Подмножество стандартной библиотеки – Общие
  • помощники, такие как , и другие. std.* Форматирование строк std.map, std.filter, std.foldl, std.range, std.join, std.sort, std.objectFields, std.mergePatch, std.format– Работа с Python-стилем форматирования происходит точно так, как ожидается, включая спецификаторы точности и ширины.
  • Сообщения об ошибках с указанием местоположения – Ошибки при парсинге и выполнении указывают на строку и столбец, чтобы вы могли быстро найти проблему. % Приватность по дизайну
  • – Всё выполняется локально в вашем браузере; ничего не отправляется на сервер. Когда использовать Jsonnet
  • Jsonnet — это язык шаблонов данных, который компилируется в JSON. Он наиболее полезен, когда необходимо генерировать большое количество похожих JSON или YAML и избежать дублирования ввода. Типичные случаи использования включают развертывания Kubernetes, где многие ресурсы имеют одинаковый шаблон, дашборды Grafana с повторяющимися шаблонами панелей, определения CI-процессов и пакеты фич-флагов или конфигурации, которые немного отличаются в разных средах. Этот веб-интерпретатор работает без файловой системы, поэтому

не поддерживаются. Форматер не сохраняет комментарии, поскольку он работает с разобранным AST. Стандартная библиотека охватывает распространённые случаи — если вы используете специальные помощники, запустите официальный

для получения конечного результата.

Ограничения

Что такое Jsonnet и как он связан с JSON? import, importstrи importbin Jsonnet — это маленький, чисто функциональный язык конфигурации, который является строгим надмножеством JSON. Любое JSON-документ является действительным программой на Jsonnet, но Jsonnet добавляет переменные, функции, условия, арифметические операции, интерполяцию строк и наследование объектов. Программы оцениваются до простого JSON, поэтому выход всегда является чему-то, что понимают все системы. jsonnet Почему Jsonnet не просто JSON с комментариями?

Реклама · УДАЛИТЬ?

Часто задаваемые вопросы

  1. JSON не имеет механизма абстракции, что означает, что похожие документы конечны и дублируются, и со временем они расходятся. Jsonnet вводит локальные переменные, функции и наследование объектов, чтобы общая структура могла быть определена один раз и использоваться повторно. Язык является детерминированным и без побочных эффектов, поэтому одинаковый вход всегда приводит к одному и тому же JSON — свойство, полезное для воспроизводимой инфраструктуры.

    Что делает оператор +: в наследовании объектов Jsonnet?

  2. В Jsonnet оператор поля объединяет значение с полем с таким же именем в родительском объекте, а не перезаписывает его. Для чисел и строк объединение происходит через сложение или конкатенацию; для массивов — через конкатенацию; для объектов — через глубокое объединение. Это позволяет дочернему объекту расширять, а не заменять значение родительского объекта, что является основным механизмом в библиотеках слоистой конфигурации.

    Какова разница между self и super в Jsonnet?

  3. ссылается на объект, который сейчас создается, включая любые последующие перезаписи — поэтому поле, определенное в терминах

    всегда видит конечное значение +: ссылается на родителя в цепочке наследования, поэтому

  4. доступ к значению

    self до применения перезаписей текущего объекта. Вместе они позволяют позднее связывание (через self.x ) и явный доступ к наследуемым значениям (через x. super Как оценка Jsonnet отличается от шаблонного языка, такого как Helm или Jinja? super.x Языки шаблонов генерируют текст путем замены строк, что означает, что структура вывода не гарантированно является действительным JSON или YAML до выполнения. Jsonnet оценивает типированный выраженный дерево до значения JSON, поэтому синтаксическая корректность обеспечивается на этапе оценки, а ошибки указывают на исходное выражение, а не на строку сгенерированного текста. Стоимость этого заключается в том, что Jsonnet — это настоящий язык с собственными семантиками, которые нужно изучать. x Вставьте код Jsonnet здесь... selfОцененный JSON или отформатированный Jsonnet появится здесь... super).

  5. Форматер и оценщик Jsonnet 1

    Форматер и оценщик Jsonnet

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?