json参数以及优化加速

  1. JSON参数

    1. JSON.stringify()

      1. 语法

       JSON.stringify(value, [, replace[, space]])
      1. 参数说明

        value: 对象或者数组

        replace: 可选,

         1. 函数,调用函数处理成员的键值。返回undefined则排除成员。根对象的键是一个空字符串:""
        1. 数组,转换数组中具有键值的成员,当value也为数组,忽略此值。

      2. space: 可选,文本添加缩进、空格、换行符。<10,最大10个空格。可使用’\t‘

       

例子

 var obj = { "name":"junjia", "sex":1, tel: 110, address: '植村'};
 var darr = ["name","tel"]
 JSON.stringify(obj, darr) // 过滤只拿到name的值 '{"name":"runoob"}'
 JSON.stringify(obj, darr, 2) // '{\n  "name": "runoob"\n}'
 function fn(prop, value) {
     // 1. this
     // console.log(this)
     // var json = this[""]
     // console.log(json)
     
     // 2. 遍历对象
     console.log(prop)
     console.log(value)
     if(prop == 'address') return; // 过滤掉住址
     return value; // 必须返回value值
 }
 JSON.stringify(obj, fn)

优化加速

常用库

  1. fast-json-stringify

  2. slow-json-stringify

原理理解,性能比较

 console.time()
 var obj = { "name":"junjia", "sex":1, tel: 110, address: '植村'};
 JSON.stringify(obj)
 console.timeEnd() // default: 0.015869140625ms
 ​
 // 已知数据结构,定制结构
 优化原理
 1. 需要先确定对象的结构信息;
 2. 信息,为该种结构的对象创建“定制化”的stringify方法,其内部实际是通过字符串拼接生成结果的;
 3. 用该“定制化”的方法来 stringify 对象即可。
 ​
 function myStringify(o) {
     return (
         `
             {"name":${o.name},"sex":${o.sex},"tel":${o.tel},"address":${o.address}}
         `
     )
 }
 console.time()
 var obj = { "name":"junjia", "sex":1, tel: 110, address: '植村'};
 myStringify(obj)
 console.timeEnd() // default: 0.013671875ms
 ​
 ​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值