json参数以及优化加速

  1. JSON参数

    1. JSON.stringify()

      1. 语法

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

        value: 对象或者数组

        replace: 可选,

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

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

例子

 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) // '{
  "name": "runoob"
}'
 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
 ​
 ​
原文地址:https://www.cnblogs.com/huangjunjia/p/13068170.html