用途:json-render 是生成式 UI 框架,让 AI 从自然语言提示生成动态界面,但被限制在预定义的组件目录内。AI 只输出 JSON(或 YAML),由 json-render 安全、可预测地渲染到各平台。
主要能力:核心概念包括 Catalog(定义允许的组件与动作,作为 AI 护栏)、Spec(AI 生成的 JSON,描述渲染哪些组件及属性)、Registry(把目录组件名映射到实际渲染实现)、Renderer(平台相关组件,接收 spec 与 registry 渲染 UI)、Actions(AI 可触发的命名事件,如 export_report、refresh_data)。Spec 采用 root 键加 elements 映射的扁平格式。
使用方式:先安装对应平台包,例如 React 核心为 npm install @json-render/core @json-render/react;shadcn/ui 为 npm install @json-render/shadcn;React Native、Vue、Svelte、SolidJS、Remotion 视频、react-pdf、react-email、react-three-fiber、image 等各有对应包。随后用 defineCatalog 定义目录(组件属性用 zod 校验),用 defineRegistry 定义注册表,再用 Renderer 渲染 spec。可配合 Vercel AI SDK 的 generateObject 或 streamObject 生成与流式渲染 spec,也提供 getCatalogSchema、getCatalogPrompt、parseSpecStream 等工具。
适用场景:AI 生成仪表盘、表单、报表等界面;跨 React、Vue、Svelte、Solid、React Native 及视频、PDF、邮件、3D、OG 图片输出;通过 @json-render/mcp 集成 Claude、ChatGPT、Cursor;配合 zustand、redux、jotai、xstate 做状态管理;用 @json-render/yaml 输出更省 token 的 YAML。
限制:资料未提供收费、价格、性能与效果数据;组件必须先在目录中定义,AI 不能渲染目录外组件;具体平台实现与版本兼容性需以官方文档为准。