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)
  • 相关阅读:
    异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
    【IntelliJ IDEA】使用idea解决新建jsp文件而找不到jsp文件模版的新建选项
    SpringBoot 上传附件
    SpringBoot访问资源文件
    springboot 整合 listener
    SpringBoot 整合 filter
    Hello_SpringBoot_demo
    springBoot 整合servlet
    RROR:o.s.b.d.LoggingFailureAnalysisReporter解决办法
    使用IDEA创建一个springboot项目
  • 原文地址:https://www.cnblogs.com/houfee/p/9969527.html
Copyright © 2011-2022 走看看