Download the PHP package ybushenko/json-parser without Composer
On this page you can find all versions of the php package ybushenko/json-parser. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package json-parser
Json-parser
Json-parser - это универсальный парсер, который с помощью определенных правил, переводит json в массив PHP, при этом в качестве источника данных может использоваться файл, текст или url.
Результат:
Установка
composer require ybushenko/json-parser
Источник данных (Loader)
Текст (TextLoader)
Для использования текстового источника данных, достаточно в конструктор TextLoader
передать json в виде текста:
Файл (FileLoader)
Для того, чтобы загрузка json происходила из файла, нужно передать в конструктор FileLoader
абсолютный путь до файла:
Url (UrlLoader)
Также возможно загружать json по url, для этого нужно использовать UrlLoader
.
Вторым аргументом можно передать клиент для http запросов совместимый с GuzzleHttp\ClientInterface
Правила обработки (Rules)
Для преобразования данных в массив используются специальные правила, с помощью которых можно получать данные и преобразовывать их в нужный вид
Путь через точку (DotPathRule)
При использовании данного правила, парсер будет пытаться получить данные по указанному пути.
Массив данных (ArrayRule)
При использовании данного правила, парсер будет пытаться получить данные по указанному пути и вернет массив массивов с указанными нодами во втором аргументе.
Кастомная обработка (CallableRule)
Для собственной обработки значения можно использовать CallableRule
. Правило принимает анонимную функцию,
и в качестве входного аргумента передаст объект целиком, чтобы пользователь смог обработать значение сам.
Из словаря (FromDictionaryRule)
Для того, чтобы использовать данное правило, для начала нужно добавить словарь в объект парсера:
Первым аргументом метода addDictionary
выступает имя словаря, которое потребуется в будущем,
вторым аргументом может быть либо массив(как в примере выше), либо строка с путем через точку
до массива данных в самом json. Например:
В этом случае в качестве словаря будет использоваться сам json, а точнее его часть указанная во втором аргументе. Для того, чтобы словарь мог использоваться парсером, он должен состоять из ключ-значение. В качестве значения допускается массив, объект и другие типы.
Правило используется таким образом:
Для начала парсер будет пытаться получить значение из path.to.node_id
,
а дальше сопоставит это значение со значением из словаря.
Если такое значение в словаре будет найдено, то он заменит его.
Дополнительно полученное значение можно обработать (например удалить начальные и конечные пробелы), для этого используется третий аргумент, который принимает анонимную функцию:
Настройки
Игнорирование ошибок (setIgnoreErrors)
Для проверки целостности данных, по умолчанию парсер будет выкидывать исключение
если по заданному пути не была найдена нода.
Для игнорирования таких ошибок следует использовать настройку setIgnoreErrors(true)
Базовый путь (setBasePath)
По умолчанию парсер ожидает json с массивом в корневой ноде. Эту ноду можно
изменить с помощью метода setBasePath
. Данная настройка позволяет задать
путь до данных, которые следует парсить.
Нода по указанному пути должна являться массивом.
Дополнительно
Добавление json без лоадеров (setJson)
Возможно использование json прямую, без лоадеров. Для этого можно воспользоваться методом setJson
При добавлении "сырого" json кода, он все равно превратится в массив,
как и во всех предыдущих случаях, а также применится базовый путь (basePath),
оригинальный(полный) json можно получить с помощью метода getOriginalJson
. Этот метод также вернет массив