前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

JSON

作者头像
Ewall
发布2018-09-04 15:32:40
2.2K0
发布2018-09-04 15:32:40
举报
文章被收录于专栏:vue学习vue学习

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);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.07.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档