zoukankan      html  css  js  c++  java
  • JSON

    JSON.stringify() 

    参考文档

    JSON.stringify(value[, replacer [, space]])
    /*
      * value:json对象/数组
      * replacer:
      * ① 函数:在序列化过程中,被序列化的值每个属性都会经过该函数的转换和处理
      * ② 如果该参数时一个数组,则只有包含这个数组中的属性名才会被序列,化到最终的json字符串中
      * space:指定缩进用的空白字符串
      * 如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格
      * 如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格
      * 如果该参数没有提供(或者为null)将没有空格
      */

    demo1:

    var obj = {
      name: 'Janny',
      age: 23,
      friends: ['Joe', 'Rose']
    }
    var c = JSON.stringify(obj,(key, value) => {
      return typeof value === 'string'? value.toUpperCase(): value
    },2)
    console.log(c)

    demo2: 

    const obj = {
      name: "houfee",
      age: 23,
      gender: "男"
    }
    const string = JSON.stringify(obj, ["name", "gender"])
    console.log(string) // {"name":"houfee","gender":"男"}

     JSON.parse()

    /*
     * JSON.parse(text[, reviver]) 返回值:Object类型, 对应给定JSON文本的对象/值。
     * text: 要被解析成JavaScript值的字符串
     * reviver: 转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在parse函数返回之前。
     */

    demo1:

    const a = JSON.parse('{"p": 5}', function(k, v) {
      if (k === '') return v // 如果到了最顶层,则直接返回属性值,
      return v * 2 // 否则将属性值变为原来的 2 倍。
    }) // { p: 10 }
    
    const b = JSON.parse(
      '{"name": "小明", "age": 23}',
      function(k, v) {
        console.log(k) // 输出当前的属性名,从而得知遍历顺序是从内向外的,// 最后一个属性名会是个空字符串。
        return v // 返回原始属性值,相当于没有传递 reviver 参数。
      }
    )
    console.log(b)
  • 相关阅读:
    python实现单线程多任务非阻塞TCP服务端
    sudo命令
    ajax 未加载出数据时,显示loding,数据显示后,隐藏loading
    ie7 解决圆角,阴影问题
    学习JavaScript你必须掌握的8大知识点!
    es6 个人笔记
    原生js,实现单选框
    原生js开发简单复选框,点击变颜色,再点击取消颜色,三种解决方法
    es6对象转数组
    JS正则截取两个字符串之间及字符串前后内容的方法
  • 原文地址:https://www.cnblogs.com/houfee/p/9969527.html
Copyright © 2011-2022 走看看