# PHP-Bean-JSON-XML **Repository Path**: imflyou/PHP-Bean-JSON-XML ## Basic Information - **Project Name**: PHP-Bean-JSON-XML - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-16 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README This library has similar features of gson/jackson. Its purpose is to easily handle the conversion between PHP objects and JSON or XML. [PHP-Bean-JSON-XML](https://gitee.com/imflyou/PHP-Bean-JSON-XML) 是一个强大的PHP库,旨在简化PHP对象与JSON或XML之间的转换。通过使用注解(Attributes)和工具类,PHP-Bean-JSON-XML 提供了一种简洁而高效的方式来处理对象序列化和反序列化,同时支持数据验证和属性别名等高级功能。 ## 主要功能 - 对象与JSON/XML的转换:自动将PHP对象转换为JSON字符串或XML字符串,反之亦然,减少了手动编写转换代码的工作量。 - 类型提示:在 PhpStorm 中支持代码提示会有代码提示 - 数据验证:内置多种数据验证器(如AssertFalse、AssertTrue、Future、Length等),在对象序列化和反序列化过程中自动进行数据验证,确保数据的有效性和完整性。 - 属性别名:支持为类属性定义别名,使得JSON/XML字段名与类属性名可以不同,增加了灵活性。 - 列表属性类型:通过注解明确数组属性的元素类型和维度,确保在序列化和反序列化过程中进行类型检查,避免数据类型不一致的问题。 ## 优点 - 简化开发:通过自动化的对象与JSON/XML转换和数据验证,减少了手动编写和维护转换代码的工作量,提高了开发效率。 - 类型安全:在转换过程中,确保数据类型的一致性,避免类型错误。 - 灵活性:支持属性别名和列表属性类型,增加了处理复杂数据结构的灵活性。 - 易于扩展和维护:项目结构清晰,代码模块化,易于扩展和维护。 ## 适用场景 - API开发:在开发RESTful API时,频繁需要将请求数据转换为对象,或将对象转换为响应数据,这个库可以大大简化这些操作。 - 数据交换:在不同系统之间进行数据交换时,确保数据格式和类型的一致性。 - 配置管理:处理复杂的配置文件,将配置文件内容转换为对象,便于管理和使用。 ## PhpStorm 类型提示示例 - 原始数据类型 ![image](https://pic3.zhimg.com/v2-8bb325b0e2097e690b5ff544fa390374_r.jpg) - 反序列化的结果有类型,和传入的类类型一致 ![image](https://pic1.zhimg.com/v2-752f9c4bdbd61a6fb99ce603f8931dd0_r.jpg) - 能识别其中嵌套的类的成员类型、编码时有代码提示 ![image](https://picx.zhimg.com/v2-1e72f736eeac2fda6763ade2805f0e45_1440w.jpg) ## 使用示例 ### 安装方法 ```shell composer require imflyou/php-bean-json-xml ``` ### 类成员为基础数据类型 ```php class SimpleMapBean { public ?string $vNull = null; public ?string $vString = ''; public ?bool $vBool = false; public ?bool $vTrue = true; public ?bool $vFalse = false; public ?bool $vBoolean = true; public ?int $vInt = 10; public ?int $vInteger = -1; public ?float $vFloat = 1.234; public ?float $vDouble = 1.3456789; public ?array $vArray = [1, 2, 3]; public ?object $vObject = null; public ?stdClass $vStdClass = null; } $jsonStr =<<