将json输出为html(二):js数据类型判断实现
更新日期:
最近项目需要用到将json格式化展示在html页面中,在这里简答整理一下其中逻辑实现,将json转换为对象Object然后判断数据类型进行处理。
分析json格式化样式
这里我们先分析一下json格式化后的展示方式,例子:
json样式/颜色
为了使得展示的体验增加,我们可以根据不同的数据类型设置不同的颜色展示。
- 基本符号,
{}
、[]
、:
、""
、,
- 字符串
- key键值
- value值
- 数字
- true/false/null
js判断数据类型
下面我们通过js来判断数据类型。
- Object对象
typeof value === 'object'
- 在javascript中,null也会被判断为object,所以我们可以添加个条件
- 即
value && typeof value === 'object'
- 这里数组Array也会被判断为object,下面我们讲一下数组的判断
- Array数组
- 我们可以使用consturctor来判断数组
value.constructor === Array
Object.prototype.toString.call(value) === '[object Array]'
- 后一种是公认的靠谱解法,具体下来大家自己思考哈
- String字符串
typeof value === 'string'
- Number数字
typeof value === 'number'
- Null
value === null
- Boolen
typeof value === 'boolen'
实现逻辑
通过上述json分析,我们可以使用两种方式实现json格式化:
- 分析JSON.stringify()后的字符串,使用正则把需要的格式匹配替换
- 将json转化为object,然后通过js判断数据类型进行格式化
这里我们使用第二种方法实现。
第一种实现可以参考上一篇《将json输出为html(一):字符串正则匹配》。
字符串匹配
判断数据类型并进行处理
- 对象Object,将处理为
{<span class="key">"key"</span>:value}
,并进入检测递归 - 数组Array,将处理为
[value,value]
,并将进入检测递归 - true/false/null,将处理为
<span class="boolen/null">true/false/null</span>
- 字符串,将处理为
<span class="string">"string"</span>
- 数字Number,将处理为
<span class="number">1</span>
- 对象Object,将处理为
实现
这里将上述的逻辑进行实现。数组不换行实现
|
|
- 数组换行实现
|
|
结束语
这里我们讨论了js判断数据类型并进行转换的实现方法。
此处查看项目代码
此处点击查看页面
查看Github有更多内容噢:https://github.com/godbasin
更欢迎来被删的前端游乐场边撸猫边学前端噢
码生艰难,写文不易,给我家猪囤点猫粮了喵~