Разобрать json php: PHP: json_decode — Manual
Содержание
JSON
JSON
Введение | |
Пример | |
Похожие статьи |
Введение
Пример
Нужно прочитать из робота файл
users.json
и разобрать его содержимое
Структура проекта
json/
├── data
│ └── users.json
└── src
└── json.robot
2 directories, 2 files
{
«users»: [{
«username»: «tester0»,
«password»: «secret0»,
«firstname»: «Dmitry»,
«lastname»: «Mendeleev»,
«phone»: 12345
},
{
«username»: «tester1»,
«password»: «secret0»,
«firstname»: «Nikolai»,
«lastname»: «Basov»,
«phone»: 12346
}
]
}
Robot Framework
*** Settings ***
Library OperatingSystem
Library Collections
*** Test Cases ***
Loading JSON
${json}= Get File . ./users.json
${object}= Evaluate json.loads(»’${json}»’) json
Log To Console ${object[«users»][0][«username»]}
&{user0}= Convert To Dictionary ${object[«users»][0]}
Log To Console ${user0}
robot json_from_file.robot
==============================================================================
Json
==============================================================================
Loading JSON ..tester0
..{‘username’: ‘tester0’, ‘password’: ‘secret0’, ‘firstname’: ‘Dmitry’, ‘lastname’: ‘Mendeleev’, ‘phone’: 12345}
Loading JSON | PASS |
——————————————————————————
Json | PASS |
1 test, 1 passed, 0 failed
==============================================================================
Output: /home/andrei/sandbox/robot/json/src/output. xml
Log: /home/andrei/sandbox/robot/json/src/log.html
Report: /home/andrei/sandbox/robot/json/src/report.html
Указать путь от текущей директории можно с помощью Normalize Path и CURDIR
${path}= Normalize path ${CURDIR}/../../../../data/users.json
${json}= Get File ${path}
Robot Framework | |
Основы | |
RFBrowser | |
Объявить переменную | |
if else: Условные операторы | |
in: Оператор принадлежности к списку | |
Циклы | |
Изменить значение переменной | |
Перенос на новую строку | |
[Tags]: тэги | |
Collections: списки, словари | |
JSON | |
Передача аргументов в кейворд | |
Evaluate | |
Поддержка Robot в PyCharm |
Поиск по сайту
Подпишитесь на Telegram канал @aofeed чтобы следить
за выходом новых статей и обновлением старых
Перейти на канал
@aofeed
Задать вопрос в Телеграм-группе
@aofeedchat
Образование
Актуально сейчас
Разное
Поиск по сайту
Подпишитесь на Telegram канал @aofeed чтобы следить
за выходом новых статей и обновлением старых
Перейти на канал
@aofeed
Задать вопрос в Телеграм-группе
@aofeedchat
Рекомендую наш хостинг beget. ru |
Пишите на [email protected] если Вы: |
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык. |
2. Хотите разместить на сайте рекламу, подходящуюю по тематике. |
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение — пожалуйста свяжитесь с нами по электронной почте |
4. Нашли на сайте ошибку, неточности, баг и т.д. … ……. |
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: |
[Сеть, интернет] Разбор JSON-ответа от сервера и получение переменных
#include <Array.au3> ;Example starts here Local $aReturn, $aInhaber, $aHobbies, $aStandort, $sText $sText = _ '{' & @CRLF & _ ' "Herausgeber": "Xema",' & @CRLF & _ ' "Nummer": "1234-5678-9012-3456",' & @CRLF & _ ' "Deckung": 2e+6,' & @CRLF & _ ' "Währung": "EURO",' & @CRLF & _ ' "Inhaber": {' & @CRLF & _ ' "Name": "Reich",' & @CRLF & _ ' "Vorname": "Rainer",' & @CRLF & _ ' "männlich": true,' & @CRLF & _ ' "Hobbys": [ "Reiten", "Golfen", "Lesen" ],' & @CRLF & _ ' "Alter": 42,' & @CRLF & _ ' "SozialesGewissen": null' & @CRLF & _ ' }' & @CRLF & _ ' "Firma": "Abc-Firma",' & @CRLF & _ ' "Standort": ["Am Gewerbegebiet 25", "Etage 2"]' & @CRLF & _ '}' & @CRLF $aReturn = _JSON_Decode($sText) $aInhaber = $aReturn[4][1] ; Child Array $aHobbies = $aInhaber[3][1] ; Child Array from $aInhaber $aStandort = $aReturn[6][1] ; Child Array _ArrayDisplay($aReturn, "Hauptobjekt") _ArrayDisplay($aInhaber, "Inhaber") _ArrayDisplay($aHobbies, "Hobbies") _ArrayDisplay($aReturn, "Hauptobjekt") _ArrayDisplay($aStandort, "Standort") $sEncoded = _JSON_Encode($aReturn) MsgBox(0,"",$sEncoded) ;Functions start here Func _JSON_Decode($sString) Local $iIndex, $aVal, $sOldStr = $sString, $b $sString = StringStripCR(StringStripWS($sString, 7)) If Not StringRegExp($sString, "(?i)^\{. "]+)"\s*:\s*(["{[]|[-+]?\d+(?:(?:\.\d+)?[eE][+-]\d+)?|true|false|null)', 2) ; Get value & next token If @error Then ConsoleWrite("!> StringRegExp Error getting next Value." & @CRLF) ConsoleWrite($sString & @CRLF) $sString = StringMid($sString, 2) ; maybe it works when the string is trimmed by 1 char from the left ? ContinueLoop EndIf $aArray[$iIndex][0] = $aVal[1] ; Key $sString = StringMid($sString, StringLen($aVal[0])) Switch $aVal[2] ; Value Type (Array, Object, String) ? Case '"' ; String ; Value -> Array subscript. Trim String after that. $aArray[$iIndex][1] = StringMid($sString, 2, StringInStr($sString, """", 1, 2) - 2) $sString = StringMid($sString, StringLen($aArray[$iIndex][1]) + 3) ReDim $aArray[$iIndex + 2][2] $iIndex += 1 Case '{' ; Object ; Recursive function call which will decode the object and return it. \s*(["{[]|\d+(?:(?:\.\d+)?[eE]\+\d+)?|true|false|null)', 2) Switch $aNextArrayVal[1] Case '"' ; String ; Value -> Array subscript. Trim String after that. $aRet[$iArIndex] = StringMid($sString, 2, StringInStr($sString, """", 1, 2) - 2) $sString = StringMid($sString, StringLen($aRet[$iArIndex]) + 3) Case "{" ; Object ; Recursive function call which will decode the object and return it. ; Object -> Array subscript. Trim String after that. $aRet[$iArIndex] = _JSON_Decode($sString) $sString = StringMid($sString, @extended + 2) Case "[" MsgBox(0, "", "Array in Array. WTF is up with this JSON shit?") MsgBox(0, "", "This should not happen! Please post this!") Exit 0xDEADBEEF Case Else ConsoleWrite("Array Else (maybe buggy?)" & @CRLF) $aRet[$iArIndex] = $aNextArrayVal[1] EndSwitch ReDim $aRet[$iArIndex + 2] $iArIndex += 1 $sString = StringStripWS($sString, 3) ; Leading & trailing If StringLeft($sString, 1) = "]" Then ExitLoop $sString = StringMid($sString, 2) Until False $sString = StringMid($sString, 2) ReDim $aRet[$iArIndex] $aArray[$iIndex][1] = $aRet ReDim $aArray[$iIndex + 2][2] $iIndex += 1 Case Else ; Number, bool ; Value (number (int/flaot), boolean, null) -> Array subscript. Trim String after that. $aArray[$iIndex][1] = $aVal[2] ReDim $aArray[$iIndex + 2][2] $iIndex += 1 $sString = StringMid($sString, StringLen($aArray[$iIndex][1]) + 2) EndSwitch If StringLeft($sString, 1) = "}" Then StringMid($sString, 2) ExitLoop EndIf If Not $b Then $sString = StringMid($sString, 2) Until False ReDim $aArray[$iIndex][2] Return SetError(0, StringLen($sOldStr) - StringLen($sString), $aArray) EndFunc ;==>_JSON_Decode Func _JSON_Encode($aArray) Local $sString, $iDim = UBound($aArray, 0), $iUB, $iUB_2 Switch $iDim ; What type of Property? Case 2 ; Object $sString = "{" $iUB = UBound($aArray) $iUB_2 = UBound($aArray,2) For $i = 0 To $iUB-1 $sString &= '"' & $aArray[$i][0] & '":' If IsArray($aArray[$i][1]) Then $sString &= _JSON_Encode($aArray[$i][1]) Else $sString &= '"' & $aArray[$i][1] & '"' EndIf $sString &= "," Next $sString = StringTrimRight($sString, 1) & "}" Case 1 ; Array $sString = "[" $iUB = UBound($aArray) For $i = 0 To $iUB - 1 If IsArray($aArray[$i]) Then $sString &= _JSON_Encode($aArray[$i]) Else $sString &= '"' & $aArray[$i] & '"' EndIf $sString &= "," Next $sString = StringTrimRight($sString, 1) & "]" Case Else Return SetError(1, 0, "") EndSwitch Return $sString EndFunc ;==>_JSON_Encode
реализаций | Схема JSON
ПРИМЕЧАНИЕ. На этой странице перечислены реализации с поддержкой (или активные разработки) для draft-06 или более поздней версии.
Информацию о реализациях, поддерживающих только версию draft-04 или более раннюю, или которые больше не находятся в разработке, см. на странице «Устаревшие реализации».
- Валидаторы
- Бенчмарки
- Документация API
- Ссылка Описание Утилиты объекта
- Генераторы схем
- Из кода
- Из данных
- Начиная с модели
- Генераторы из схем
- Генерация кода
- Поколение веб-интерфейса
- Данные из схем
- Коммунальные услуги
- Общая обработка
- на схему
- Перенос проекта схемы
- Преобразователи форматов
- Тестирование
- Редакторы
- Генераторы документации
Схема
- Хранилища схем
- Схема Линтер
- Гиперсхема
Приведенные ниже реализации написаны на разных языках и частично или полностью поддерживают по крайней мере одну последнюю версию спецификации.
Реализации классифицируются на основе их функциональных возможностей. Когда известно, также упоминается лицензия проекта.
Если у вас есть обновления для этого списка, сделайте запрос на вытягивание в репозитории GitHub.
Листинг не означает рекомендацию или одобрение любого рода.
Валидаторы #
Контрольные показатели #
Здесь могут быть перечислены эталонные тесты, которые сравнивают как минимум две реализации, поддерживающие draft-06+.
- Перейти
- validator-benchmarks — тест валидаторов Go JSON Schema на основе официального набора тестов
- JavaScript
- json-schema-benchmark — независимый тест для валидаторов JSON-схемы Node.js на основе JSON-Schema Test Suite (MIT)
- PHP
- php-json-schema-bench — сравнительный тест для валидаторов PHP с JSON-схемой с использованием JSON-Schema Test Suite и z-schema/JSCK (MIT)
Документация по API #
- JavaScript
- @cloudflare/doca (инструменты схемы JSON), draft-04, -06, -07 и расширения Doca (ожидается пользовательский интерфейс)
- @adobe/jsonschema2md упрощает задачу, предоставляя ряд сценариев, которые могут превращать файлы схемы JSON в удобочитаемую документацию Markdown, готовую для использования на GitHub или обработанную с помощью Jekyll или других генераторов статических сайтов. Схема JSON 2019-09 (частично)
- Питон
- FastAPI (MIT) — это платформа API, основанная на типах Python 3.6+, которая генерирует OpenAPI 3 схем, включая схем JSON для всех заявленных моделей.
Ссылка Описание Утилиты объекта #
- JavaScript
- @cloudflare/json-hyper-schema draft-07, -06, -04 (BSD-3-пункт)
Генераторы схем #
Генераторы схем не должны поддерживать создание каждого ключевого слова схемы.
Для генераторов схем совместимость с черновиком означает, что:
- Созданные схемы явно задают черновик с помощью
$schema
- В созданных схемах отсутствует
$schema
, но они действительны по отношению к соответствующей метасхеме
Например, единственные несовместимости между draft-04 и draft-06 включают эксклюзивный минимум
, эксклюзивный максимум
и id
против $id
. Если генератор не устанавливает $schema
и никогда не выдает эти ключевые слова, то он совместим с draft-06, даже если он был написан с учетом draft-04.
Из кода #
- .NET
- Json.NET (AGPL-3.0) — генерирует схемы из типов .NET
- NJsonSchema — (Ms-PL) — генерирует схемы из типов .NET, см. проблему 574, чтобы узнать о прогрессе поддержки draft-06+
- JsonSchema.Net.Generation (MIT) — генерирует схемы из типов .NET
- Перейти
- jsonschema — (MIT) — генерировать схемы из структур Go. Поддерживает проект 2020-12.
- PHP
- Liform (MIT) — генерирует схемы из форм Symfony
- машинописный текст
- машинопись-json-схема
- Питон
- Pydantic (MIT) — генерирует схемы из моделей Python на основе подсказок типов Python 3. 6+.
- msgpec (BSD-3-Clause) — генерирует схемы из аннотаций типов Python.
- mashumaro (Apache 2.0) — генерирует схемы из аннотаций типа Python
- Ява
- jsonschema-generator (Apache 2.0) — генерирует схемы из типов Java поддерживает Draft 7 и Draft 2019-09
- Скала
- scala-jsonschema (Apache 2.0) — генерирует схему из классов случаев Scala
- Рубин
- Shale (MIT) — генерирует схему из моделей Ruby поддерживает Draft 2020-12
- Ржавчина
- Schemars (MIT) — генерирует схему из кода Rust поддерживает Draft 7
Из данных #
- Ява
- saasquatch/json-schema-inferrer 2020-12, 2019-09, draft-07, draft-06, draft-04 (Apache 2.0) — библиотека Java для вывода схем JSON из одного или нескольких образцов JSON.
- Скала
- Schema Guru (Apache 2.0) — утилита CLI, Spark Job и веб-интерфейс для получения схем JSON из корпуса экземпляров JSON; см. выпуск 178, чтобы узнать о ходе работы над поддержкой Draft-06+
- JSONoid (MIT) — инструмент командной строки и приложение Spark для вывода схем из документов JSON, поддерживает проект 2019-09
- Кложур
- luposlip/json-schema (Apache 2.0) — вывести схему JSON из данных Clojure
- Онлайн (веб-инструмент)
- jsonschema.net — генерирует схемы из примеров данных
- Онлайн-инструменты Liquid — вывод схемы JSON из образца данных JSON
- quicktype.io — вывод схемы JSON из образцов и создание типов TypeScript, C++, go, Java, C#, Swift и т. д. из схемы JSON
От модели №
- Dataspecer — генерирует схему JSON (и контекст JSON-LD) из концептуальной модели поддерживает Draft 2020-12
Генераторы из схем #
Инструменты, генерирующие артефакты из схем, не обязательно должны поддерживать каждое ключевое слово,
поскольку не все ключевые слова хорошо подходят для генеративных вариантов использования.
Генераторы считаются совместимыми с тягой, если они поддерживают (или мягко
игнорировать) соответствующий $schema
значение и интерпретировать ключевые слова, которые они
сделать поддержку в соответствии с этим проектом.
Например, если генератор, изначально написанный для draft-04, не
поддержка id
, эксклюзивный минимум
или эксклюзивный максимум
, тогда до тех пор, пока он это делает
не требует draft-04 $schema
, она совместима с draft-06, так как те
единственные ключевые слова, которые изменились.
Генерация кода #
- Дотнет
- Corvus.JsonSchema — создает идиоматическую модель типа dotnet из файлов схемы JSON, поддерживая все функции схемы JSON, включая методы доступа к свойствам, перечисление, общий формат строки
System.Text. Json
. поддерживает проекты 6, 7, 2019-09 и 2020-12 .
- Corvus.JsonSchema — создает идиоматическую модель типа dotnet из файлов схемы JSON, поддерживая все функции схемы JSON, включая методы доступа к свойствам, перечисление, общий формат строки
- Вяз
- json-schema-to-elm — генерирует типы Elm, декодеры и кодировщики JSON и нечеткие тесты из одного или нескольких файлов схемы JSON с использованием dragonwasrobot/json_schema поддерживает проект 7
- Перейти
- go-jsonschema — генерирует типы Go и помощники из файлов схемы JSON поддерживает Draft 2020-12
- Ява
- jsonCodeGen (MIT) — задачи генерации на основе Groovy из схемы JSON. Уже включает шаблоны/генераторы для Java Beans, файлы спецификаций Swagger и диаграммы PlantUML.
- jsonschema2pojo (Apache 2.0) — генерирует типы Java из схемы JSON (или примера JSON) и может аннотировать эти типы для привязки данных с помощью Jackson 2.x или Gson. черновик-07
- jsonschematypes (Apache 2.0) — библиотека Java для создания классов Java или TypeScript из стандартных схем JSON. Схема JSON 2019-09, черновик-07, -06, -04, -03
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
- Котлин
- json-kotlin-schema-codegen (MIT) — генерирует классы данных Kotlin, классы Java или интерфейсы TypeScript из схемы JSON.
- Онлайн (веб-инструмент)
- quicktype.io — вывод схемы JSON из образцов и создание типов TypeScript, C++, go, Java, C#, Swift и т. д. из схемы JSON
- PHP
- php-code-builder (MIT) — генерирует структуры сопоставления PHP, определенные схемой JSON, с использованием swaggest/json-schema поддерживает Draft 7
- Питон
- yacg (MIT) — анализировать файлы JSON Schema и OpenApi для построения из них метамодели. Эту метамодель можно использовать в шаблонах Mako для генерации исходного кода, других схем или plantUml.
- statham (MIT) — создание моделей с аннотациями типов из документов JSON Schema.
- Ржавчина
- схема — генерирует типы Rust и код сериализации из схемы JSON. поддерживает проект 4
- Скала
- json-schema-to-case-class (MIT) — пакет NPM, веб-интерфейс и интерфейс командной строки для создания классов случаев Scala из схемы JSON. Поддерживает схему JSON 2019-09, draft-07, -06, -04, -03
- машинописный текст
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
- Рубин
- Shale (MIT) — генерирует модели Ruby из схемы JSON. поддерживает Draft 2020-12
.
Генерация веб-интерфейса #
TODO: Сортировка по поддержке проекта.
Различные уровни поддержки создания пользовательского интерфейса, в основном из словаря проверки или в сочетании с конкретным определением пользовательского интерфейса.
- JavaScript
- Формы из альпаки (ASL 2.0)
- Форма угловой схемы (MIT)
- Форма схемы Angular2 , не связанная с формой схемы Angular (MIT)
- Angular6-json-схема-форма (MIT)
- Форма схемы Dashjoin JSON (Apache 2) draft-06 (минус oneOf, anyOf, allOf, not)
- Редактор JSON (MIT)
- Форма JSON (joshfire) (joshfire) (MIT)
- Json Forms (брутузин) (брутузин) (MIT)
- JSONForms (jsonforms.io) (EclipseSource) (MIT)
- Лиформ-реакт (MIT)
- Форма схемы React JSON (mozilla) (Apache 2)
- Форма схемы React Json (Mui) (MIT)
- Форма схемы React (networknt) (MIT)
- Форма схемы пространства отдыха (MIT)
- униформа (Вазко) (MIT)
- Схема пользовательского интерфейса для React (MIT) 2019-09 / draft-08, -07, -06, -04 (несовместимый тип
= целое число
)
Данные со схем #
- . Нет
- JsonSchema.Net.DataGeneration (MIT) Генерация данных из схем JSON с помощью библиотеки генерации тестовых данных Bogus.
- Питон
- гипотеза-jsonschema (MPL) draft-07, -06, -04 ; принимает любую схему, даже со сложными и взаимодействующими ограничениями, и возвращает стратегию Hypothesis, которая может генерировать действительные документы для тестирования.
- Ява
- jsongenerator Схема JSON 2019-09, draft-07, -06, -04, -03 (Apache-2.0)
Утилиты #
Совместимость с проектами коммунальных услуг обычно зависит от цели
полезность, и решается в каждом конкретном случае.
Общая обработка #
- JavaScript
- json-schema-ref-parser (MIT) Инструменты для разыменования нециклических схем, объединения связанных схем в один файл и другой обработки
$ref
. - json-schema-library (MIT) — Предоставляет инструменты для работы с json-схемой, в том числе: создание данных из json-схемы, обработка
$ref
, просмотр схем и т. д. - @cloudflare/json-schema-walker (инструменты JSON Schema Tools), draft-07, -06, -04 и расширения Doca от Cloudflare Обходит схемы и выполняет предварительные и постобходные обратные вызовы. Может изменять схемы на месте. (Статья BSD-3)
- @hyperjump/json-схема-ядро
(MIT) Инструменты для работы со схемами, обрабатывающими идентификаторы и
Рекомендации. Создавайте словари и другие инструменты на основе схемы JSON.
- json-schema-ref-parser (MIT) Инструменты для разыменования нециклических схем, объединения связанных схем в один файл и другой обработки
Схема к схеме #
- JavaScript
- @cloudflare/json-schema-transform (JSON Schema Tools), (BSD-3-Clause) Утилиты, использующие @cloudflare/json-schema-walker для преобразований, включая
allOf
слияние и пример объединения. - mokkabanna/json-schema-merge-allof (MIT)
- mokkabanna/json-схема-сравнить (MIT)
- loganvolkers/json-schema-resolve-allof ( лицензия не указана )
- JSON-Схема-Инстантиатор (MIT)
- @cloudflare/json-schema-transform (JSON Schema Tools), (BSD-3-Clause) Утилиты, использующие @cloudflare/json-schema-walker для преобразований, включая
Миграция проекта схемы #
- JavaScript
- AlterSchema Схема JSON 2020-12, 2019-09, осадка-07, -06, -04
Преобразователи форматов #
- OpenAPI
- Схема JSON для схемы OpenAPI draft-04 Draft-06 и -07 запланированы согласно README (MIT)
- Спецификация OpenAPI для JSON Schema Draft-07 (MIT)
- Санитар
- Дежурный (BSD-3-Статья)
- РАМЛ
- ramldt2jsonсхема черновик-06, 04 (Apache-2.0)
- Веб-пакет
- @cloudflare/json-schema-ref-loader (инструменты схемы JSON), (BSD-3-Clause) загрузчик Webpack для разыменовываемых схем в JSON, JSON5, YAML или JavaScript
- @cloudflare/json-schema-apidoc-loader (инструменты схемы JSON), серверная часть для @cloudflare/doca, draft-04, -06, -07 и расширения Doca
- XSD
- Oxygen XSD to JSON Schema — создание из файла XSD аналогичной структуры схемы JSON.
- Плагин XSD to JSON Schema IntellJ — плагин для преобразования файла схемы XML (XSD) в файл схемы JSON.
Тестирование #
- Питон
- гипотеза-jsonschema (MPL) draft-07, -06, -04 ; принимает любую схему, даже со сложными и взаимодействующими ограничениями, и возвращает стратегию Hypothesis, которая может генерировать действительные документы для тестирования.
Редакторы #
- Altova XMLSpy 2019r3 — Графический редактор схемы JSON для draft-06 и draft-7, а также проверка файлов JSON на основе схемы JSON
- Редактор схемы JSON Dashjoin — Графический онлайн-редактор схемы JSON для проекта-06 (минус oneOf, anyOf, allOf, not). Сгенерированную схему можно сразу протестировать через управляемую ею форму.
- Студия Хаколейд — Редактор Visual JSON Schema для draft-04, draft-06, draft-07, 2019-09, 2020-12, а также инструмент моделирования данных для баз данных NoSQL, форматов хранения, REST API и JSON в РСУБД. Также конвертирует в и из: различных предварительных спецификаций, DDL, XSD, Swagger, OpenAPI, YAML, Avro, Parquet, Protobuf и большинства синтаксисов сценариев NoSQL. Включает графический интерфейс для диаграмм отношений объектов и интерфейс командной строки.
- JSONBuddy — Редактор и средство проверки JSON для текста и сетки. Полная среда разработки JSON Schema с анализатором JSON Schema, контекстно-зависимыми помощниками ввода, созданием образцов данных на основе JSON Schema и отладчиком проверки JSON Schema: пройдите процесс проверки и установите контрольные точки. Поддержка драфт-4, драфт-6, драфт-7, 2019-09 и 2020-12.
- JSONEditor Online — Просмотр, редактирование, форматирование и проверка JSON в Интернете Поддержка черновика 4, черновика 6 и черновика 7.
- Liquid JSON Schema Editor — Графический редактор схемы JSON для draft-04, draft-06, draft-07 и 2019-09, с разделенным исходным кодом и графическим редактированием. Включает проверку файлов JSON на основе схемы JSON, генератора образцов JSON и генератора документации схемы JSON.
- Редактор схемы Oxygen JSON — Редактор схемы JSON с различными функциями редактирования и вспомогательными представлениями (Дизайн/Текст/Автор). Поддержка проверки и редактирования черновиков схемы JSON-4, черновик-6 и черновик-7, 2019-09 (частично), 2020-12 (частично). Проверка и редактирование файлов JSON на основе схемы JSON.
- Perseid Modeler — инструмент моделирования для схемы JSON и OpenAPI. Основные функции включают в себя: визуальное создание схемы JSON с использованием древовидных и ERD-подобных диаграмм, поддержку структур схемы JSON, включая операторы и условия, импорт существующих схем из файлов, создание подробных отчетов HTML, экспорт в PDF, создание сценариев и многое другое. Поддерживаемые версии: черновик 4, 6, 7, 2019 г.-09 и 2020-12
- Stoplight Studio — JSON Schema IDE (текстовый и графический интерфейс) с поддержкой линтинга JSON/YAML, который также может быть основан на правилах схемы JSON через Spectral. Поддержка черновика-4, черновика-6 и черновика-7.
- Visual Studio Code — Завершение кода на основе схемы, наведение и проверка для редактирования файлов JSON (включая схемы)
- WebStorm, IntelliJ IDEA и другие IDE JetBrains — Завершение кода, документация и проверка файлов JSON и YAML с использованием схемы JSON. Поддержка черновика-4, черновика-6 и черновика-7.
- Eclipse IDE — версия Rich JSON, поддерживающая схему для мгновенной проверки и отчетов об ошибках, завершение, документирование.
Генераторы документации #
- docusaurus-json-schema-plugin — Средство просмотра схемы. Работает в веб-приложении Docusaurus. Поддерживает черновик 7, 2019-09, черновик 2020-12
- json-schema-static-docs — создает удобную для человека документацию по уценке из схемы JSON. Включает ссылки между страницами на основе значений $ref. Поддерживает проект-7.
- jsonschematic — средство просмотра схемы на основе Svelte. Работает как локальное веб-приложение. Поддерживает проект-7.
- docson — средство просмотра схемы на основе Javascript. Работает как локальное веб-приложение. Поддерживает черновик-4.
- json-schema-for-humans — создание HTML-представления схемы. На основе Python. Поддерживает проект-7.
- oXygen JSON Schema Documentation — создание документации по схеме JSON в формате HTML, включая диаграммы.
- wetzel — генерирует Markdown и AsciiDoc. С некоторыми ограничениями поддерживает черновики-3, черновики-4, черновики-7 и 2020-12.
Репозитории схем #
- SchemaStore.org — проверка на соответствие общим схемам JSON
Схема линтера #
- json-schema-linter — Линтинг/проверка/анализ самой json-схемы и поиск опечаток, отсутствующих свойств, отсутствующих необходимых ключей и т.