JSON 转 PHP
从 JSON 生成带 fromArray() 的类型化 PHP 类
粘贴 JSON 或加载示例以生成 PHP 代码。
JSON 转 PHP 会生成什么
JSON 转 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 → string,整数 → int,小数 → float,布尔值 → bool,数组 → 带 list<T> PHPDoc 的 array,对象 → class,出现 null → ?T,混合标量 → 联合类型(如 string|int),未知 → mixed。
限制与隐私
示例只反映数据某一次的样子,而不是完整的 API 契约。在依赖这些代码之前,请检查可选字段、通用类型和数字宽度。输入限制为 5 MB 和 256 层嵌套;从 2 MB 起,需点击“生成”按钮才会生成。所有处理都在您的浏览器中运行,JSON 不会被上传。超出 PHP_INT_MAX 的整数类型为 mixed,因为除非使用 JSON_BIGINT_AS_STRING,json_decode 会把它们转换为浮点数。
