Json2Array是专为JSON转PHP类设计的轻量插件,支持右键生成带类型注解和构造函数的类,需保存为.json文件或用@var注释标注才能触发;PhpStorm原生不支持“Paste JSON as Classes”,此功能仅属IntelliJ IDEA Ultimate。

Json2Array 是目前最直接可用的方案
它专为从 JSON 字符串生成 PHP 类(或 TypeScript/Java 等)设计,不是通用代码生成器,但胜在轻量、精准、无依赖。安装后右键 JSON 片段即可生成带属性、类型注解、构造函数的 PHP 类,支持 stdClass、array 和 Laravel 的 Arr 风格。
常见错误现象:粘贴完 JSON 后右键没看到 “Generate PHP class” 选项 —— 这通常是因为当前文件类型未被识别为 JSON。解决方法:把 JSON 字符串单独复制到一个新文件,保存为 temp.json,再右键生成;或者在 PHP 文件中,先用 /** @var array $data */ 注释标注变量,再对变量名右键尝试。
- 插件兼容 PhpStorm 2024.1–2025.2,最新版
1.0.4发布于 2025 年 10 月,适配当前 2026 年主流版本 - 不依赖外部服务,所有解析在本地完成,敏感接口响应体可安全处理
- 生成的类默认使用
public属性 +__construct(),若需 Laravel 的fillable或 DTO 风格,需手动调整
为什么不用 PhpStorm 内置的 “Paste JSON as Classes”?
PhpStorm 原生不提供该功能 —— 这是 IntelliJ IDEA Ultimate 的特性,**PhpStorm 社区版和专业版均未内置**。部分用户误以为开启了 JavaScript 插件就能触发,实际是混淆了 IDE 功能边界。即使装了 JavaScript and TypeScript 插件,粘贴 JSON 后也只会弹出 “Paste as Plain Text” 或 “Paste as JSON”,没有类生成选项。
容易踩的坑:试图通过 Settings → Editor → General → Smart Keys 启用 JSON 相关选项来激活该功能,无效。这是 JetBrains 对产品线的功能切分,非配置问题。
立即学习“PHP免费学习笔记(深入)”;
替代方案:用 Live Template + json_decode() 快速验证结构
当只需临时建一个简单映射、不追求完整类定义时,比插件更快:
- 选中 JSON 字符串(比如
{"id":1,"name":"foo"}) - 按
Ctrl+Alt+J(Windows/Linux)调出 Live Template,输入jsonvar(需提前配置),展开为:$data = json_decode('{SELECTION}', true); - 执行后光标停在
{SELECTION}位置,回车即完成粘贴与解码,PHPStorm 会基于json_decode的返回值推断$data类型,后续$data['name']可获得基础补全
这个方法不生成类文件,但能绕过插件安装步骤,适合调试阶段快速确认字段是否存在、类型是否一致。
注意 schema 映射对生成质量的影响
Json2Array 本身不读取 JSON Schema,但它生成的属性名和类型,高度依赖原始 JSON 的字段完整性。如果输入的是 {"user":{"name":"a"}},它不会自动展开嵌套结构为独立类 —— 默认平铺为 public string $user_name;。若你有对应的 user.schema.json,建议先用 PhpStorm 的 JSON Schema 支持(Settings → Languages & Frameworks → Schemas and DTDs)绑定该 schema,再用 Json2Array,部分新版已开始尝试读取 schema 中的 $ref 和 definitions 提升嵌套识别率。
真正容易被忽略的一点:**空数组 [] 或 null 字段会导致生成的属性类型丢失,变成 mixed,后续补全失效。务必在生成前确保 JSON 示例包含典型非空值**。


















