JSON в PHP
Генерация типизированных классов PHP с fromArray() из JSON
Вставьте JSON или загрузите пример, чтобы сгенерировать код PHP.
Что генерирует JSON to PHP
JSON to PHP превращает ответ API или любой пример JSON в классы PHP. Продвижение в конструкторе создаёт публичные типизированные параметры конструктора (PHP 8.0+); стиль публичных свойств создаёт типизированные свойства и заполняет их в fromArray(). Обязательные параметры идут перед необязательными, необязательные значения по умолчанию равны null, а аннотации PHPDoc list<Type> описывают элементы массивов, которые не могут описать встроенные типы.
Как использовать
- 1.Вставьте JSON, загрузите или перетащите файл .json либо загрузите один из примеров.
- 2.Задайте имя корневого класса и необязательное пространство имён, например App\Models.
- 3.Выберите стиль класса и решите, создавать ли типизированные свойства и PHPDoc.
- 4.Прочитайте заметки, затем скопируйте код или скачайте Models.php. Декодируйте через json_decode($json, true) и вызовите Root::fromArray($data).
Как выводятся типы
- •Проверяется каждый элемент массива, а не только первый, и объекты одного массива объединяются.
- •Ключ, отсутствующий в части объектов, необязателен; ключ, который иногда равен null, допускает null. Эти случаи различаются.
- •1 и 2.5 в одной позиции расширяются до дробного числа; о других смешениях выводится заметка.
- •Пустые массивы и значения, которые всегда равны null, не дают сведений о типе, поэтому используется обобщённый тип, а заметка объясняет причину.
- •Сопоставление типов: строка → string, целое число → int, дробное число → float, логическое значение → bool, массив → array с PHPDoc list<T>, объект → class, встречен null → ?T, смешанные скаляры → объединение, например string|int, неизвестно → mixed.
Ограничения и конфиденциальность
Пример показывает, как данные выглядели один раз, а не полный контракт API. Проверьте необязательные поля, обобщённые типы и разрядность чисел, прежде чем полагаться на код. Ввод ограничен 5 МБ и 256 уровнями вложенности; начиная с 2 МБ генерация ждёт нажатия кнопки «Сгенерировать». Всё выполняется в браузере, JSON никуда не загружается. Целые числа больше PHP_INT_MAX получают тип mixed, потому что json_decode превращает их в float, если не указан JSON_BIGINT_AS_STRING.
