JavaScript工具类(十四):json数据

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地址(记得给星哦)

https://github.com/shiguang0116/sg-utils


系列文章

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用法实例


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值