美文网首页Vue实战专题
轻量级数据交换格式JSON

轻量级数据交换格式JSON

作者: 极课编程 | 来源:发表于2019-04-13 22:31 被阅读30次

    json是一种数据格式,不是一种编程语言。
    json是一种轻量级的数据格式,可以简化表示复杂数据结构的工作量。

    1、语法
    ①json字符串必须使用双引号
    ②没有声明变量
    ③没有末尾分号
    ④json对象中的属性名必须加双引号

    json的语法可以表示三种类型的值
    简单值:使用与js相同的语法,可以在json中表示字符串、数值、布尔值和null。(不支持undefined)

    "hello world"
    

    对象:

    {
         "name":"Ewall",
         "age":21
    }
    

    数组:

    [25,"ewall",true]
    

    2、JSON对象
    两个方法:stringfy( ):把js对象序列化为json字符串
    parse( ):把json字符串解析为原生js值

    var person={
        name:"Ewall",
        friends:["joe","frank"],
        edition:3,
        year:2017
    };
    var jsonText=JSON.stringify(person);
    console.log(jsonText);
    

    3、JSON.stringfy( )的具体用法
    该方法可以传入三个参数,第一个参数是要序列化的对象;第二个是个过滤器(可以是数组或者是函数);第三个是一个选项,表示是否在JSON字符串中保留缩进。
    ①当过滤器是数组,那么该方法返回的结果将只包含数组中列出的属性

    var person={
        name:"Ewall",
        friends:["joe","frank"],
        edition:3,
        year:2017
    };
    var jsonText=JSON.stringify(person,["name","year"]);
    
    console.log(jsonText); //{"name":"Ewall","year":2017}
    

    ②当过滤器是函数。传入的函数接收两个参数,属性名和属性值,根据属性名可以知道应该如何处理要序列化的对象中的属性。

    var person={
        name:"Ewall",
        friends:["joe","frank"],
        edition:3,
        year:2017
    };
    var jsonText=JSON.stringify(person,function(key,value){
        switch(key){
            case "friends":
                return value.join(",");
            case "year":
                return undefined;  //通过返回undefined删除该属性
            default:
                return value;
        }
    });
    console.log(jsonText); //{"name":"Ewall","friends":"joe,frank","edition":3}
    

    4、JSON.parse( )方法的具体用法
    接收两参数:第一个参数是要序列化的对象;第二个参数是个还原函数。
    在将日期字符串转换为Date对象是,经常要用到还原函数。

    var person={
        name:"Ewall",
        friends:["joe","frank"],
        edition:3,
        year:2017,
        releaseDate:new Date()
    };
    var jsonText=JSON.stringify(person);
    console.log(jsonText);
    
    var bookCopy=JSON.parse(jsonText,function(key,value){
        if(key=="releaseDate"){
            return new Date(value);  //基于相应的json值创建一个新的Date对象
        }else{
            return value;
        }
    });
    console.log(bookCopy.releaseDate);
    
    

    相关文章

      网友评论

        本文标题:轻量级数据交换格式JSON

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