【前端】vue3 vue3-ace-editor json格式化显示 json编辑器
一、效果
二、代码
<!-- --> <template> <div class='content'> <el-select v-model="aceConfig.theme" class="m-2" placeholder="Select" size="large"> <el-option v-for="item in aceConfig.arr" :key="item" :label="item" :value="item" /> </el-select> <el-button @click="jsonFormat">格式化</el-button> <el-button @click="jsonNoFormat">压缩</el-button> <v-ace-editor v-model:value="dataForm.textareashow" @init="jsonFormat" lang="json" :theme="aceConfig.theme" :options="aceConfig.options" :readonly="aceConfig.readOnly" style="height:300px" class="ace-editor" /> </div> </template> <script setup> import { reactive } from 'vue' import { VAceEditor } from 'vue3-ace-editor'; // 加了这个【import "ace-builds/webpack-resolver";】可能会报错 //(若报错 则需要安装node.js的一个包 就是主题) // 命令:npm install --save-dev file-loader import "ace-builds/webpack-resolver"; import 'ace-builds/src-noconflict/mode-json'; import 'ace-builds/src-noconflict/theme-chrome'; import 'ace-builds/src-noconflict/ext-language_tools'; //ace编辑器配置 const aceConfig = reactive({ lang: 'json', //解析json theme: 'chrome', //主题 arr: [ /*所有主题*/ "ambiance", "chaos", "chrome", "clouds", "clouds_midnight", "cobalt", "crimson_editor", "dawn", "dracula", "dreamweaver", "eclipse", "github", "gob", "gruvbox", "idle_fingers", "iplastic", "katzenmilch", "kr_theme", "kuroir", "merbivore", "merbivore_soft", "monokai", "mono_industrial", "pastel_on_dark", "solarized_dark", "solarized_light", "sqlserver", "terminal", "textmate", "tomorrow", "tomorrow_night", "tomorrow_night_blue", "tomorrow_night_bright", "tomorrow_night_eighties", "twilight", "vibrant_ink", "xcode", ], readOnly: false, //是否只读 options: { enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, tabSize: 2, showPrintMargin: false, fontSize: 13 } }); //form const dataForm = reactive({ textareashow: '{"A":"A1"}' }); const jsonError = (e) => { console.log(`JSON字符串错误:${e.message}`); } // JSON格式化 const jsonFormat = () => { try { dataForm.textareashow = JSON.stringify(JSON.parse(dataForm.textareashow), null, 2) } catch (e) { jsonError(e) } }; // JSON压缩 const jsonNoFormat = () => { try { dataForm.textareashow = JSON.stringify(JSON.parse(dataForm.textareashow)) } catch (e) { jsonError(e) } } </script> <style scoped> </style>
如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-09-26 【Python】解析HTML
2020-09-26 【Python】批量下载图片
2020-09-26 【Python】打印列表所有元素
2020-09-26 【Python】自动化测试请求文件上传接口