Skip to content
On this page

Json JSON 编辑组件 ​

s-json 基于 CodeMirror 6 封装,用于编辑完整 JSON 文本。键名和值都可以直接修改,并提供语法高亮、中文错误提示、错误定位、格式化、压缩、复制和只读模式。

Hidden Title ​

基础用法:<s-json v-model:data="data" />

属性事件插槽简介 ​

基础用法(默认 width='100%'、disabled=false、lineNumbers=true、toolbar=true、showStatus=true) ​

完整编辑(默认 height=''、theme='light') ​

禁用状态(默认 disabled=false) ​

API ​

属性名说明类型 / 可选值默认值
modelValue结构化 JSON,优先于 data,支持默认 v-modelstring / number / boolean / array / object / nullundefined
data结构化 JSON,合法结果通过 v-model:data 同步string / number / boolean / array / object / nullnull
disabled是否禁用编辑true / falsefalse
indent格式化时使用的缩进空格数number2
lineNumbers是否显示行号true / falsetrue
toolbar是否显示格式化、压缩和复制工具栏true / falsetrue
showStatus是否显示 JSON 校验状态true / falsetrue
placeholder空内容占位文字string请输入 JSON
width编辑器宽度,支持 processWidth 写法string / number100%
height编辑器高度,支持 processWidth 写法string / number''
minHeight编辑器最小高度,支持 processWidth 写法string / number240
theme编辑器主题light / darklight
style根节点额外样式CSSProperties-

事件 ​

事件名说明参数
update:modelValue文本可解析时同步结构化 JSONvalue: JsonData
update:data文本可解析时同步结构化 JSONvalue: JsonData
change每次编辑时返回文本、数据及校验状态{ text, data?, valid, error }
valid-change合法状态发生变化,错误信息为中文valid: boolean, error: string
format格式化成功value: string
compact压缩成功value: string
copy复制成功value: string

暴露方法 ​

方法名说明
format格式化当前 JSON,成功时返回 true
compact压缩当前 JSON,成功时返回 true
copy复制当前文本
focus聚焦编辑器
getText获取当前文本
getData获取解析结果,无效时返回 undefined

说明 ​

  • v-model 与 v-model:data 的绑定值都是 JsonData;用户可以自由编辑完整文本,只有 JSON 合法时才会更新绑定值。
  • 需要读取暂时不合法的编辑文本时,通过组件实例调用 getText()。
  • disabled 的用法与 s-input 一致;禁用时使用置灰背景和禁用状态提示,隐藏格式化与压缩操作,保留高亮和复制能力。

思云博智私有前端组件库