几种JSON数据在页面上格式化展示的方案
1. JSON.stringify()方法
如下示例,original是一个 textarea,会在输入框失去焦点的时候格式化JSON数据
- html
<textarea class="form-control" id="original" rows="20" placeholder="Please input JSON data here ..." style="white-space:nowrap; overflow:scroll;"></textarea>
- js
<!--失去焦点的时候格式化 JSON 数据-->
$('#original').blur(function() {
var input;
try {
if ($('#original').val().length == 0) {
return;
}
input = eval('(' + $('#original').val() + ')');
} catch (error) {
return alert("Input data is not valid JSON, please check. Error: " + error);
}
$('#original').val(JSON.stringify(input, null, 4));
});
2. json-viewer插件
所要的CSS和JS文件下载地址:
https://github.com/abodelot/jquery.json-viewer/tree/master/json-viewer
首先引入CSS:
<!-- JSON Viewer -->
<link href="/static/css/campaign/jquery.json-viewer.css" rel="stylesheet">
<script src="../static/components/jquery/dist/jquery.min.js"></script>
<!-- JSON viewer -->
<script src="/static/js/campaign/jquery.json-viewer.js"></script>
如下方法可以将JSON数据进行格式化:
$('#btn-json-viewer').click(function() {
try {
var input = eval('(' + $('#original').val() + ')');
} catch (error) {
return alert("Cannot eval JSON: " + error);
}
$('#original').hide();
$('#json-renderer').show();
$('#btn-json-viewer').hide();
$('#btn-json-viewer1').show();
$('#json-renderer').jsonViewer(input, {collapsed: false, withQuotes: true});
});
3. ACE 编辑器
下载并引入ace.js:https://github.com/ajaxorg/ace/tree/master/lib/ace
<script type="text/javascript" src="/static/js/campaign/ace/ace.js"></script>
- js
<script>
$(document).ready(function () {
});
var editor = ace.edit("editor");
editor.setOptions({
mode: 'ace/mode/json',
theme: 'ace/theme/twilight',
tabSize: 2,
wrap: true,
})
<!-- 这里获取JSON数据,并将其放入Editor中 -->
editor.setValue(JSON.stringify(data, null, '\t'));
</script>
- html
<div class="ibox-content" style="height: 700px">
<style type="text/css" media="screen">
#editor {
height: 650px;
}
</style>
<div id="editor"></div>
</div>
- 获取输入值的参考:
$(function() {
<!--点击校验-->
$('#btn-validate').click(function() {
var jsonDataEle = ace.edit("jsonData");
var jsonSchemaEle = ace.edit("jsonSchema");
var jsonData = jsonDataEle.session.getValue();
var jsonSchema = jsonSchemaEle.session.getValue();
});
});
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具