zoukankan      html  css  js  c++  java
  • JSON 方法:JSON.stringify()、JSON.parse()

    JavaScript Object Notation  (JSON)


    JSON.stringify():将一个 JavaScript 对象或值转换为 JSON 字符串。

    • 语法JSON.stringify(value[, replacer [, space]])
    • 参数
      • value:将要序列化成 一个 JSON 字符串的值。
      • replacer(可选):
        如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;
        如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的JSON 字符串中;
        如果该参数为 null或者未提供,则对象所有的属性都会被序列化。
      • space(可选):指定缩进用的空白字符串,用于美化输出 (pretty-print);
        如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;
        如果该参数为字符串(当字符串长度超过10个字母,取其前10个字母),该字符串将被作为空格;
        如果该参数没有提供(或者为 null),将没有空格。
    • 返回值:一个表示给定值的JSON字符串。
    • JSON.stringify()将值转换为相应的JSON格式
      • undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。
      • 函数、undefined 被单独转换时,会返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined).
      • NaN 和 Infinity 格式的数值及 null 都会被当做 null。
      • 布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值。
    const obj = {
        stringKey: 'str',
        numberKey: 123,
        booleanKey: false,
        nullKey: null,
        undefinedKey: undefined,
        symbolKey: Symbol('symbol'),
        fn: () => {},
        arr: ['str', 123, false, null, undefined, Symbol('symbol'), () => {}]
    };
    JSON.stringify(obj);
    // {"stringKey":"str","numberKey":123,"booleanKey":false,"nullKey":null,"arr":["str",123,false,null,null,null,null]}
    const obj = {
        foo: 'bar',
        bar: 'baz'
    };
      
    JSON.stringify(obj, null, 2);
    
     /* {
        foo: 'bar',
        bar: 'baz'
      } */
    const obj = {
      foo: 'bar',
      bar: 'baz'
    };
    
    JSON.stringify(obj, ['foo']); // {"foo":"bar"}

    JSON.parse() :用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。

    • 语法JSON.parse(text[, reviver])
    • 参数
      • text:要被解析成 JavaScript 值的字符串。
      • reviver(可选):转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前。
    • 返回值:Object 类型, 对应给定 JSON 文本的对象/值。
  • 相关阅读:
    JAVA共通関数文字列の長さを求める
    JAVA共通関数文字コード変換
    JAVA共通関数文字列に空白を追加する
    JAVA共通関数 半角英数字チェック
    JAVA共通関数項目が半角09か判断する
    JAVA共通関数 指定日の曜日を算出する
    linux添加静态路由(rhel5.4)
    ubuntu编译opencapwap报错解决
    Wireshark网络抓包(二)——过滤器
    net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse回收tcp连接总结
  • 原文地址:https://www.cnblogs.com/jserhub/p/13901359.html
Copyright © 2011-2022 走看看