怎么将格式化后的 json 展示到前端界面,并且格式不被破坏

2017-07-05 16:17:37 +08:00
 Romanticlizhi

比如一串 json 格式为{"name":"HTL","sex":"男","age":"24"},格式化后为以一个键值对占一行的格式,总共三行。此时我想要在前台页面展示格式化后的数据格式。我现在的做法是:写了一个格式化 json 的函数,将格式化后的数据保存在一个变量中,然后前台是将数据放在 span 标签中。现在我有主要几个问题无法解决:

  1. 怎么将变量的值赋给 span (重要!)
  2. span 会不会破坏格式化后的数据格式
  3. 前端有什么标签不会破坏数据格式
  4. 有木有哪位大神指点一个更加好的方法拯救我吧,在此谢过啦!!!很急!!杭州的可以面对面交流!!
3815 次点击
所在节点    程序员
13 条回复
cliberal
2017-07-05 16:20:44 +08:00
为啥要放 span 里,直接将格式化后的数据放 pre 里不行么
vankid
2017-07-05 16:21:38 +08:00
用 html 标签<br>换行就可以,span 赋值直接$("选择符").html(json);
vankid
2017-07-05 16:25:53 +08:00
如果你不想改写好的格式化工具,那就 json.replace("\n","<br/>");然后传到前台$("选择符").html(json)
Romanticlizhi
2017-07-05 16:28:21 +08:00
@vankid 好坑,网上查出一大堆用.innerHTML(),innerText()等等都不行,就是没有.html(),可怜我这个做 Java 的后端了,非常感谢!!!
seancheer
2017-07-05 16:28:57 +08:00
<pre>标签不会破坏格式。。。顺带,楼主你头像让人耳目一新
Romanticlizhi
2017-07-05 16:38:22 +08:00
@vankid 为啥 json.replace(",","<br/>");只有第一行的键值对后面的逗号被替换了。。。。
ijse
2017-07-05 16:47:09 +08:00
```
const formatedJSON = JSON.stringify(data, null, '\t')
```
然后把它放到<pre>中就好了。
ijse
2017-07-05 16:49:34 +08:00
const $pre = document.createElement('pre')
$pre.innerHTML = formatedJSON
document.querySelector('span').appendChild($pre)
KeepPro
2017-07-05 16:51:43 +08:00
女装大佬连这都解决不了了么 233
FlowerChen
2017-07-05 17:03:44 +08:00
用个循环一个个读出来,放到你要的 DOM 里面,比如 table 里面
Romanticlizhi
2017-07-05 17:07:27 +08:00
@ijse 感谢了,但是,请看 append!
vankid
2017-07-06 15:17:10 +08:00
@Romanticlizhi 我也是个 java 后端啊。。。
vankid
2017-07-06 15:21:17 +08:00
@Romanticlizhi javascript 是这样子啦,你搜下 replaceAll,有很多写好的方法的。或者你在后台用 java 里的 replace 换

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/373250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX