Vue表单输入的JSON数据在预览时无法正确格式化怎么办?
在做表单数据预览功能时,用户输入JSON字符串到textarea,我用v-model绑定到data.jsonData。但直接显示时,数据都挤成一行:
<template>
<textarea v-model="jsonData"></textarea>
<div>预览:</div>
<pre>{{ jsonData }}</pre>
</template>
尝试用JSON.parse转换再JSON.stringify加参数,但遇到错误:”Unexpected token o in JSON at position 1″。如果用户输入有格式错误,整个预览区域就崩了,该怎么优雅处理这种动态格式化显示?
你应该用 try-catch 包裹解析过程,失败时回退到原始文本显示。另外 stringify 时传入空格参数才能格式化输出。
模板里直接用 computed 值:
这样既能保证格式化缩进显示,又不会因为非法输入导致页面崩溃。建议加上 debounce 防抖,避免频繁解析影响性能。