vue3-ace-editor前端 json格式化显示 json编辑器使用

news2024/11/29 7:44:19

前端 json格式化显示 json编辑器使用vue3-ace-editor

1.安装
项目目录下打开终端 运行

npm install vue3-ace-editor

2.使用

<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;margin-top: 20px;" class="ace-editor" />
    </div>
</template>

<script setup>
import { reactive } from 'vue'
import { VAceEditor } from 'vue3-ace-editor';

//import "ace-builds/webpack-resolver";
// 加了这个【import "ace-builds/webpack-resolver";】可能会报错
//(若报错 则需要安装node.js的一个包 就是主题)
// 命令:npm install --save-dev file-loader

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>
.content{
    padding-top: 20px;
}
.el-button{
    margin-left: 20px;
}
</style>

效果:
在这里插入图片描述

说明:这里我们不需要主题其他啥的,只需要简单的功能实现即可,代码简化一下:

<template>
    <div class='content'>
        <el-button @click="jsonFormat">格式化</el-button>
        <el-button @click="jsonNoFormat">压缩</el-button>
        <v-ace-editor v-model:value="dataForm.textareashow" @init="jsonFormat" lang="json"
                      :readonly="aceConfig.readOnly" style="height:300px;margin-top: 20px;" class="ace-editor" />
    </div>
</template>
<script setup>
import { reactive } from 'vue'
import { VAceEditor } from 'vue3-ace-editor';

//ace编辑器配置
const aceConfig = reactive({
    lang: 'json', //解析json
    readOnly: false, //是否只读
});
//form
const dataForm = reactive({
    textareashow: '{"A":"A1","B":"B1"}'
});
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>
.content{
    padding-top: 20px;
}
.el-button{
    margin-left: 20px;
}
</style>

效果:
在这里插入图片描述
实例效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提升物流效率和可见性:RFID技术在物流线上的创新应用

随着科技的进步&#xff0c;物联网和大数据的应用越来越广泛。RFID&#xff08;无线射频识别技术&#xff09;作为物联网的重要组成部分&#xff0c;已经广泛应用于物流行业中。RFID技术通过无线电信号识别特定目标&#xff0c;无需人工干预&#xff0c;大大提高了物流线的效率…

基于SSM的个人通讯录设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

微信小程序overflow-x超出部分样式不渲染

把display:flex改成display:inline-flex&#xff0c; 将对象作为内联块级弹性伸缩盒显示&#xff0c; 类似与是子元素将父元素撑开&#xff0c;样式就显示出来了

Python+pandas将Excel文件xls批量转换xlsx(代码全注释)

文章目录 专栏导读背景安装的库代码部分(全注释)视频演示总结&#x1f44d; 该系列文章专栏&#xff1a;[Python办公自动化专栏]PS: xlsx转xls文章在这&#xff1a;【点我直达】 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的…

接口自动化测试requests

1.什么是requests&#xff1f; requests是一个Python第三方库&#xff0c;处理URL资源特别方便 2.安装requests pip3 install requests 如果遇到Permission denied安装失败&#xff0c;请加上sudo重试 3.使用requests 3.1get请求方法 3.1.1基本的get请求 import reques…

HTTPS的加密方式超详细解读

在了解https的加密方式之前&#xff0c;我们需要先行了解两个特别经典的传统加密方式&#xff1a; 1、对称加密 1.1、定义 需要对加密和解密使用相同密钥的加密算法。所谓对称&#xff0c;就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解…

MojoUserAgent库

Mojo::UserAgent 是 Perl 编程语言中的一个库&#xff0c;用于创建和管理 HTTP 请求。它提供了一个简单而强大的接口&#xff0c;用于发送 HTTP 请求并处理响应。 以下是一个使用 Mojo::UserAgent 的简单示例&#xff1a; use Mojo::UserAgent;创建一个 Mojo::UserAgent 对象…

小红书优质达人标准是什么,达人投放攻略!

众所周知kol、koc投放&#xff0c;相较于信息流和竞价广子而言&#xff0c;在投放结果上&#xff0c;存在更多的浮动因素。而想要把控kol、koc的投放结果&#xff0c;就需要在匹配优质达人方面多下功夫。今天为大家分享下小红书优质达人标准是什么&#xff0c;达人投放攻略&…

包含3的数字-第10届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第2讲。 包含3的数字&#…

微信小程序:实现多个按钮提交表单

效果 核心步骤 通过data-type给不同按钮进行设置&#xff0c;便于很好的区分不同按钮执行不同功能 data-type"" 完整代码 wxml <form action"" bindsubmit"formSubmit"><button style"margin-bottom:5%" data-type"pa…

技术共建,飞桨与OpenVINO™ 共创开放AI生态

在智能新时代&#xff0c;百度和英特尔作为行业引领者&#xff0c;一直专注于构建强大的产品组合和开放的软件生态系统。为此&#xff0c;百度飞桨打造功能丰富、开源开放的产业级深度学习平台&#xff0c;英特尔推出OpenVINO™工具套件&#xff0c;并致力于借助双方技术来增强…

云栖大会 | 科技改变生活,移远通信实力引领智能未来

科技对生活的改变体现在出行方式、娱乐方式、支付方式等多个方面&#xff0c;已经融入了我们的日常生活&#xff0c;为我们带来了便捷、高效、舒适的体验。 10月31日—11月2日&#xff0c;云栖大会在杭州盛大召开。本次大会以“计算&#xff0c;为了无法计算的价值”为主题&…

亚马逊云科技实操教学带你注册并使用海外服务器

手把手教你注册和使用亚马逊云科技海外服务器。 前置条件 准备&#xff1a; 一个在用邮箱 一张在用的有Visa或者Master标志的信用卡 一部在用的电话 一个支持key文件导入的ssh客户端 注册亚马逊云科技 在任意浏览器上搜索“亚马逊云科技”&#xff0c;打开官网&#xff0c…

Padding负值遮挡视图(下拉刷新头部)

padding值为负值时&#xff0c;表示当前视图被遮住了一部分。 可使用 view.set Padding( int left , int top , int right , int bottom) 方法进行动态设置。 下拉刷新头部的实现&#xff1a; (1) 获取屏幕大小。(2) 设置 刷新头高度&#xff08;定值&#xff09; 设置 显…

新手学计算机编程入门,自学编程入门从哪里入手开始学习

新手学计算机编程入门&#xff0c;自学编程入门从哪里入手开始学习 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;向如图这个…

哪些指标可以评估实施MES管理系统的效益

在现代制造业的浪潮下&#xff0c;MES生产管理系统已成为众多企业的得力助手。然而&#xff0c;如何判断MES管理系统是否真的为企业创造了价值&#xff1f;本文将为您解析三个核心指标&#xff0c;助您深入了解MES管理系统的实际效益&#xff0c;确保您的投资决策明智有据。 一…

PHP解析带BOM头的JSON数据,对接他人接口的时候,使用json_decode(),返回null的问题与解决方法

在php开发中会遇到和他人对接接口&#xff0c;对方使用json传输数据&#xff0c;使用json_decode()函数却无法将json数据转换为数组。 先看封装的代码 private function curlPost($url, $post_data []) {$ch curl_init() or die (curl_error());curl_setopt($ch, CURLOPT_…

《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结果

结果 以下展示基于 CPU 和 GPU 的 3 组性能测试结果。该测试使用了 Milvus 的 HNSW(仅 CPU)和IVF_PQ(CPU 和 GPU)索引类型。 商品向量间相似度搜索 对于给定的参数组合,将 50% 的商品向量作为查询向量,并从剩余的向量中查询出 top-100 个相似向量。我们发现,在测试的参…

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据&#xff1a;

基于寄生捕食算法的无人机航迹规划-附代码

基于寄生捕食算法的无人机航迹规划 文章目录 基于寄生捕食算法的无人机航迹规划1.寄生捕食搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用寄生捕食算法来优化无人机航迹规划。 …