# wysJSON **Repository Path**: null_562_1801/wys-json ## Basic Information - **Project Name**: wysJSON - **Description**: wysJSON vscode JSON 编辑器 20260509 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JSONOKOK `JSONOKOK` 当前是一个单文件 JSON 表格编辑器原型,主文件是 `index.html`。 项目目标不是先做完整工程化,而是先把下面这件事做扎实: - 用接近 Excel 的交互方式编辑 JSON - 支持 object / array / primitive 混合嵌套 - 尽量通过 UI 完成节点增删改和类型切换 - 为未来封装成 VS Code Webview 保留基础 ## 当前入口 - 主页面:`index.html` - 详细项目记忆体:`wysLog/README.md` 如果你是新开会话的大模型,建议按这个顺序理解项目: 1. 先读 `wysLog/README.md` 2. 再读 `index.html` 3. 改动前先复述当前规则,再动手 ## 当前真实状态 这是一个纯前端原型,不是完整 VS Code 扩展。 当前没有构建步骤,也没有 npm 依赖。运行方式很简单: - 直接在浏览器打开 `index.html` - 或用静态服务器打开 `index.html` 注意: - 不要用 `node --check index.html` 判断页面脚本是否正常 - 真正有效的验证方式是浏览器交互验证或 Playwright 验证 ## 当前已确认的重要规则 - 只有纯 object 数组才走列式表格 - 混合数组必须逐行递归显示 - cell 右键菜单改的是当前值节点类型,不是整个父表 - corner 菜单是当前表/选区级别的节点操作 - `单值` 的规则是递归取第一个元素或第一个字段的值 ## VS Code 插件迁移踩坑 已验证过两类问题,后续再碰到同类交互,优先按下面思路排查: - Webview 里的多单元格拖拽选择,不能只依赖 table 内部的 `mouseover`。在 VS Code Webview 中,拖拽结束后会出现额外 click,把范围选区重新压回单格。稳定做法是:拖拽时用 document 级 `mousemove + elementFromPoint()` 跟踪目标 cell,并在 `#tableView` 的 click 捕获阶段吞掉拖拽结束后的那次 click。对应实现见 `media/webview.js`。 - Webview 中非编辑态 cell 必须禁用原生文本选择,编辑态再恢复;同时要去掉 selectable td 的默认 focus outline。否则会出现“文本被蓝色选中”或“最后一个 cell 只有黄色焦点框”的假象,干扰多选判断。对应样式见 `media/webview.css`。 ## 当前最重要的文件 - `index.html` 当前全部功能都在这里,包含 HTML / CSS / JS / 状态 / 渲染 / 菜单逻辑。 - `wysLog/README.md` 这是详细版项目记忆体,记录当前架构、规则、验证样例、踩坑点、协作方式。 ## 对后续协作的要求 如果后续继续和大模型协作,默认遵守: 1. 先读 `wysLog/README.md` 2. 对存在歧义的交互,先确认再改 3. 优先修根因,不要只改表面显示 4. 改完立刻做浏览器级验证 5. 新规则、新坑、新验证路径要同步写回记忆体 ## 当前推荐下一步 继续补“全 UI 操控所有节点”的边角行为,尤其是: - mixed array 下的增删改 - nested object / nested array 的结构操作 - 各类右键菜单在递归层级中的一致性 - 类型切换后的默认插入行为和显示稳定性 如果需要详细上下文,不要只看这个根 README,直接继续读:`wysLog/README.md`。