JSON
定义:JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 是存储和交换文本信息的语法。类似 XML,比 XML 更小、更快,更易解析。
- JSON 独立于语言:JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
一、常用方法
方法 | 描述 |
---|---|
JSON.parse(text[, reviver]) | 将数据转换为 JavaScript 对象。text :必需, 一个有效的 JSON 字符串。reviver :可选,一个转换结果的函数, 将为对象的每个成员调用此函数。 |
JSON.stringify(value[, replacer[, space]]) | 将 JavaScript 对象转换为字符串。value :必需, 要转换的 JavaScript 值(通常为对象或数组)。replacer :可选。用于转换结果的函数或数组。如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。 space :可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。 |
二、json数据方法封装
u.json = {}
json数据转树状结构
/**
* @description json格式转树状结构
* @param {JSON} data json数组 [{},{}]
* @param {String} id id 的字段名
* @param {String} pid 父id 的字段名
* @param {String} child child 的字段名
* @return {Array}
*/
u.json.toTreeData = function(data, id, pid, child) {
var i
var ret = []
var hash = {}
var len = (data || []).length
for (i = 0; i < len; i++) {
hash[data[i][id]] = data[i]
}
for (i = 0; i < len; i++) {
var pidO = hash[data[i][pid]]
if (pidO) {
pidO[child] = pidO[child] || []
pidO[child].push(data[i])
}
else {
ret.push(data[i])
}
}
return ret
}
下载
npm i sg-utils -S
GitHub地址(记得给星哦)
系列文章
JavaScript工具类(一):util.js创建及上传
JavaScript工具类(二):cookie缓存
JavaScript工具类(三):localStorage本地储存
JavaScript工具类(四):数据类型
JavaScript工具类(五):string字符串
JavaScript工具类(六):number数字
JavaScript工具类(七):array数组
JavaScript工具类(八):object对象
JavaScript工具类(九):date日期
JavaScript工具类(十):base64编码、解码
JavaScript工具类(十一):浏览器、移动端类型
JavaScript工具类(十二):validate表单验证
JavaScript工具类(十三):url路径处理
JavaScript工具类(十四):json数据
JavaScript工具类:util.js用法实例