javascript - html美化json忽略换行符
问题描述
我需要在 html 页面上美化我的 json 输出,我正在使用以下代码执行此操作:
$.each($('td.pretty_json'), function(key, value){
$(this).html('<pre>' + JSON.stringify(JSON.parse($(value).text()), null, 2) + '</pre>');
});
问题是,在这个美化的 json 中,新行字符无法识别,我得到了这个:
字符串变得太长,表格单元格被拉离屏幕太远。我尝试应用一些自定义样式,如自动换行或分词,但没有帮助。欢迎任何想法如何解决它,谢谢。
解决方案
破坏 JSON 中的字符串文字是不对的,因为它实际上会使 JSON 无效。
相反,请使用另一种解决方案来解决您的初始问题(表格变得太宽)。一种解决方案是向具有此类 JSON 的单元格添加水平滚动条。
小演示:
$.each($('td.pretty_json'), function(key, value){
$(this).html('<pre>' + JSON.stringify(JSON.parse($(value).text()), null, 2) + '</pre>');
});
table { border-collapse: collapse; }
table, th, td { border: 1px solid black; }
td.pretty_json {
max-width: 100px;
overflow-x: scroll;
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr><td class="pretty_json">{ "property": "this is a test\nnext line" }</td><td class="pretty_json">{ "property": "this is a test\nnext line" }</td></tr>
<tr><td class="pretty_json">{ "property": "this is a test\nnext line" }</td><td class="pretty_json">{ "property": "this is a test\nnext line" }</td></tr>
</table>
推荐阅读
- javascript - Shopify {{cart.total_price}} 在 CSS 类之外使用时不会更新
- vue.js - 代码有效,但在 Vue 中仍然收到警告
- python - 如何将拼写检查功能应用于大型数据集?
- flutter - dio 3.0发送多部分formdata请求,响应码为400
- tensorflow - 如何在张量流中使用softmax
- ios - 没有这样的模块“AgoraRtcEngineKit”
- php - GitLab CI/CD - nginx 容器上的供应商目录
- python - 无法从 anaconda jupyter 笔记本访问 pip 安装的软件包
- android - android中的ibeacon集合小于ios
- apache-spark - Spark 2.4.6 + JDBC Reader:当谓词下推设置为false时,spark是否从引擎并行读取数据?