美文网首页
JSON.parse() 与 JSON.stringify()

JSON.parse() 与 JSON.stringify()

作者: 启灵Alex | 来源:发表于2018-10-09 11:19 被阅读35次

    JSON.stringify()

    JSON.stringify()在MDN中的解释:将一个JavaScript值(对象或者数组)转换为一个 JSON字符串

    语法

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

    >value:JavaScript值(对象或者数组)
    >replacer:如果是函数,转换时会经过函数的处理, 如果是数组,转换时只保留数组中有的属性名
    >space:指定缩进时用的字符串

    示例

    //要转换的js对象
    var session = {
        'screens' : [],
        'state' : true
    };
    //给对象赋值
    session.screens.push({"name":"screenA", "width":450, "height":250});
    session.screens.push({"name":"screenB", "width":650, "height":350});
    //将对象转换成JSON字符串
    JSON.stringify(session);//将对象转换为JSON字符串,不进行任何操作
    JSON.stringify(session, (k, v)=> { if(typeof v === "string") return undefined;return v;});//将对象转换为JSON字符串,用函数去掉string型值
    JSON.stringify(session, ['state']);//将对象转换为JSON字符串,只保留state属性值
    JSON.stringify(session, (k, v)=> { if(typeof v === "string") return undefined;return v;}, '\t');//将对象转换为JSON字符串,用函数去掉string型值,且以制表符缩进
    

    如果对象拥有 toJSON 方法,那么该 toJSON 方法就会覆盖该对象默认的序列化行为:不是那个对象被序列化,而是调用 toJSON 方法后的返回值会被序列化


    JSON.parse()

    JSON.parse()在MDN中的解释:用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作)

    语法

    JSON.parse(text [, reviver])
    

    >text :要被解析成JavaScript值的字符串
    >reviver:如果是一个函数,则规定了原始值如何被解析改造

    示例

    var json = '{"result":true, "count":42}';
    JSON.parse(json);
    JSON.parse('{"foo":5,"too":"abc"}'); 
    JSON.parse('{"a":5,"b":6,"c":3}', (k,v)=>{if(v>5) return v*2;return v}); 
    

    JSON.parse() 不允许用逗号作为结尾,如:JSON.parse('{"foo":5,"too":"abc",}');

    相关文章

      网友评论

          本文标题:JSON.parse() 与 JSON.stringify()

          本文链接:https://www.haomeiwen.com/subject/vhjeaftx.html