{"id":18594159,"url":"https://github.com/jurasciix/objeckson","last_synced_at":"2025-07-06T23:06:24.746Z","repository":{"id":235948609,"uuid":"791612914","full_name":"JuraSciix/Objeckson","owner":"JuraSciix","description":"PHP library that supposed for mapping JSON objects to PHP objects","archived":false,"fork":false,"pushed_at":"2025-05-23T22:47:25.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-23T23:30:57.772Z","etag":null,"topics":["arrays","deserialization","generics","json","mapping","php8"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuraSciix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-25T03:20:32.000Z","updated_at":"2025-05-23T22:47:28.000Z","dependencies_parsed_at":"2024-05-05T02:23:21.294Z","dependency_job_id":"77804acf-b0af-4ba1-b278-7127672e4af1","html_url":"https://github.com/JuraSciix/Objeckson","commit_stats":null,"previous_names":["jurasciix/objeckson"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/JuraSciix/Objeckson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuraSciix%2FObjeckson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuraSciix%2FObjeckson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuraSciix%2FObjeckson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuraSciix%2FObjeckson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuraSciix","download_url":"https://codeload.github.com/JuraSciix/Objeckson/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuraSciix%2FObjeckson/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263986222,"owners_count":23539808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arrays","deserialization","generics","json","mapping","php8"],"created_at":"2024-11-07T01:14:39.620Z","updated_at":"2025-07-06T23:06:24.724Z","avatar_url":"https://github.com/JuraSciix.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Objeckson\n\n__Objeckson__ - это библиотека для отображения динамических ассоциативных структур \n(которые, как правило, хранятся в формате JSON) на объекты PHP.\n\n## Возможности и roadmap\n- [x] Десериализовывать массивы\n- [x] Отображать на перечисления\n- [x] Анализировать обобщенные типы\n- [x] Работать с nullable-типами\n- [x] Пользовательские сеттеры\n- [x] Анализировать array-shapes: array{foo: Foo, bar: Bar}\n- [ ] Значения по умолчанию для Readonly свойств\n- [ ] Отображать на объекты STD: DateTime, SplFixedArray, etc...\n- [ ] Комбинации прямо отображаемых типов (примитивных): string|int|Foo\n- [ ] OneOf\n\n## Установка\n\nТребования:\n* PHP ≥ 8.1\n* Composer\n\nУстановка посредством __composer__:\n\u003e composer require jurasciix/objeckson:^1.0\n\n## Быстрый туториал\n\nСледующий код демонстрирует инициализацию объекта, предоставляющего доступ к функциям __Objeckson__, \nи десериализацию данных JSON с отображением на объект PHP:\n\n```php\nuse jurasciix\\objeckson\\JsonProperty;\nuse jurasciix\\objeckson\\Optional;\nuse jurasciix\\objeckson\\Objeckson;\n\n#[JsonProperty]\nclass APIResponse {\n    #[Optional]\n    public ?APIError $error = null;\n    #[Optional]\n    public mixed $data = null;\n}\n\n#[JsonProperty]\nclass APIError {\n    public int $code;\n    public string $description;\n}\n\n$responseJSON = \u003c\u003c\u003cJSON\n{\n    \"error\": {\n        \"code\": 1,\n        \"description\": \"Error description\"\n    }\n}\nJSON;\n\n// Инициализируем главный объект \n$objeckson = new Objeckson();\n\n// Десериализовываем и отображаем данные на объект типа APIResponse.\n$response = $objeckson-\u003efromJson($responseJSON, APIResponse::class);\n\n// Смотрим, что у нас вышло.\nvar_dump($response);\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjurasciix%2Fobjeckson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjurasciix%2Fobjeckson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjurasciix%2Fobjeckson/lists"}