zoukankan      html  css  js  c++  java
  • JSON.stringfy()

    1、语法

    JSON.stringify(value[, replacer [, space]])
    • value

      将要序列化成 一个 JSON 字符串的值。

    • replacer 可选

      1. 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;
      2. 如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;
      3. 如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。
    • space 可选

      1. 指定缩进用的空白字符串,用于美化输出(pretty-print);
      2. 如果参数是个数字,它代表有多少的空格;上限为10。
      3. 该值若小于1,则意味着没有空格;
      4. 如果该参数为字符串(当字符串长度超过10个字母,取其前10个字母),该字符串将被作为空格;
      5. 如果该参数没有提供(或者为 null),将没有空格。

    「返回值」

    一个表示给定值的JSON字符串。

    2、使用
    // 默认情况下数据是这样的
      let signInfo = [
        {
          fieldId: 539,
          value: undefined
        },
        {
          fieldId: 540,
          value: undefined
        },
        {
          fieldId: 546,
          value: undefined
        },
      ]
      // 经过JSON.stringify之后的数据,少了value key,导致后端无法读取value值进行报错
      // 具体原因是`undefined`、`任意的函数`以及`symbol值`,出现在`非数组对象`的属性值中时在序列化过程中会被忽略
      console.log(JSON.stringify(signInfo))
      // '[{"fieldId":539},{"fieldId":540},{"fieldId":546}]'
      const aa = JSON.stringify(signInfo,(key,value) => typeof value === 'undefined' ? '' : value)
      // 优化- [{"fieldId":539,"value":""},{"fieldId":540,"value":""},{"fieldId":546,"value":""}]
     
  • 相关阅读:
    Oracle数据库5--数据库对象
    Oracle数据库4--多表关联
    Session
    cookie
    Servlet的部分response响应处理
    Servlet的部分request请求处理
    Linux部分命令
    Linux基础
    弹性布局
    animation 动画
  • 原文地址:https://www.cnblogs.com/hqq422/p/15681755.html
Copyright © 2011-2022 走看看