最近在处理后端返回的数据时,遇到一个问题,解码后的json在控制台输出之后是格式化,但是在页面上打印的时候,并不是,改了一下午的格式,猛回头,原来如此,绕在自己优秀的思维里无法自拔,浪费很多时间.
一般情况有三种转格式的方法
escape: 对除ASCII字母、数字、标点符号 @ * _ + - . / 以外的其他字符进行编码。
encodeURL: 返回编码为有效的统一资源标识符 (URI) 的字符串,不会被编码的字符:! @ # $ & * ( ) = : / ; ? + '
encodeURIComponent: 对URL的组成部分进行个别编码,而不用于对整个URL进行编码
目前使用encodeURIComponent解码后是字符串,在控制台打印出来之后是格式化的
格式化字符串的方式有两种,涉及到两种技术小点,当初学的时候没用上,久而久之忘记了,现在总结一下,目前发现的解决方案
1: 较为常见的是,A是对象,标准格式(key值没有双引号,value值为数字或字符串,并且为双引号) ,B为数字,设定的字符间距
利用JSON.stringify(A, null, B) 获取的时候就可以到得到格式化的对象字符串
2: 解码后得到是字符串,无回车无空格,但是控制台打印是可以得到格式化的对象字符,页面不识别控制台的回车和空格
(控制台的回车符是带下拐的小箭头),这时候有两种解决方案
1) 添加css 样式 white-space:pre-wrap
2) 使用<pre/>标签