安装jsoneditor
npm i jsoneditor
编写代码
<template>
<div class="jsonutil-container">
<div class="left-box c-shadow">
<textarea v-model="fromStr"></textarea>
</div>
<div class="right-box" id="jsoneditor">
</div>
</div>
</template>
<script setup>
import {ref, onMounted, watchEffect} from 'vue'
import JSONEditor from 'jsoneditor'
const fromStr = ref('{\n' +
' "Array": [1, 2, 3],\n' +
' "Boolean": true,\n' +
' "Null": null,\n' +
' "Number": 123,\n' +
' "Object": {"a": "b", "c": "d"},\n' +
' "String": "Hello World"\n' +
'}')
let editor = null
onMounted(() => {
const container = document.getElementById('jsoneditor');
const options = {
};
editor = new JSONEditor(container, options);
editor.set(JSON.parse(fromStr.value))
})
watchEffect(() => {
if (fromStr.value.length != 0) {
try {
editor.set(JSON.parse(fromStr.value))
} catch (e) {
console.log(e)
}
}
})
</script>
<style scoped lang="less">
.jsonutil-container {
display: flex;
justify-content: space-between;
height: 100%;
}
.left-box{
width: 35%;
margin: 0 auto;
height: 80%;
background-color: #fff;
}
.right-box{
width: 60%;
height: 80%;
}
.left-box > textarea{
width: 100%;
height: 100%;
border: none;
font-size: 1em;
}
.left-box > textarea:focus,
.right-box > textarea:focus {
border: none;
outline: none;
}
</style>
效果展示

完整代码
完整的代码示例地址在gitee,地址如下,觉得不错的麻烦给个star
toolSet: 一些开发中用过的轮子 - Gitee.com

1974

被折叠的 条评论
为什么被折叠?



