JSON在JavaScript中的进阶用法

JSON在JavaScript中的进阶用法

大家在工作中可能用JavaScript处理JSON格式的数据的时候肯定离不开JSON.parse()和JSON.stringify()这两个方法,说一下这两个方法的强大之处
总结自《JavaScript 高级程序设计》
  • 序列化为JSON字符串
var book = {
    title:"JSON JavaScript",
    authors:[
        "ldl"
    ],
    edition:2,
    year:2017
};
var jsonText = JSON.stringify(book);
以上就是我们平时最简单的序列化的用法

- 解析为原生JavaScript值

var jsText = JSON.parse(jsonText);
以上为最简单的解析用法

进阶用法

  • 序列化选项

    JSON.stringify()方法除了要序列化的JavaScript对象之外,还可以接受另外两个参数:一个过滤器(Function||Array),也叫过滤函数(replacer);一个保留缩进选项,show you the code:

var book = {
    title:"JSON JavaScript",
    authors:[
        "ldl"
    ],
    edition:2,
    year:2017
};
var jsonText = JSON.stringify(book,["title,edition"]);//数组:返回数组中包含的属性
var jsonText = JSON.stringify(book,function(key, value){//函数:过滤作用
    switch(key){
        case "authors":
            return value.join(",");
        case "year":
            return 9527;
        case "edition":
            return undefined;
        default:
            return value;
    }
},4);//缩进值最大为10,大于10时自动变为10,结果字符串会自动包含换行符。
  • 解析选项
    JSON.parse()方法也可以接受另一个参数,这个参数是一个函数,也叫做还原函数(reviver)与过滤器函数签名相同。
var book = {
    title:"JSON JavaScript",
    authors:[
        "ldl"
    ],
    edition:2,
    year:2017,
    releaseDate: new Date(2017, 11, 1)
};
var jsonText = JSON.stringify(book);
var bookCopy = JSON.parse(jsonText,function(key, value){
    if(key =="releaseDate"){
        return new Date(value);
    } else {
        return value;
    }
});
alert(bookCopy.releaseDate.getFullYear());
小火鸡,看完有没有觉得这两个方法666啊,在你的下一段JavaScript代码里灵活运用吧!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值