javascript权威指南第20章 JSON

//20.1 语法
//JAVASCRIPT 是对JSON数据支持的。
//JSON 可以申明三种类型的值  简单值("hello world") 对象({"name":"maosi"}) 数组(["a","b","c"])

//20.1.2 json对象

var person = { "name": "Nicholas","age": 29 };
person = {
    "name": "Nicholas","age": 29,"school": {
        "name": "Merrimack College","location": "north Andover,MA"
    }
}
//js 对象
var person = { name: "Nicholas",age: 29 };


//20.1.3 数组(js语法与json 数组一样)
var values = [25,‘hi‘,true];
//复杂结构数组
[
    {
        "title": "Professnional javascript","authors": [
            "Nicholas C Zakas"
        ],edition: 3,year: 2011
    },{
        "title": "Professnional javascript",edition: 2,year: 2009
    }
]

//20.2 解析与序列化

//序列化
var book = {
    title: "professional JavaScript",authors: ["Nicholas C Zakas"],year: 2011,releaseDate:new Date(2011,1,1);
};
var jsontext = JSON.stringify(book);

//20.2.2 序列化选项

jsontext = JSON.stringify(book,["title","edition"]); //表示序列化的属性数组(指定只序列化哪些属性)
//序列化属性进行逻辑处理
jsontext = JSON.stringify(book,function (key,value){
    switch (key) {
        case "authors":
            return value.JSON(‘,‘);
        case "year":
            return 5000;
        case "edition":
            return undefined; //此处被定义为undefined后字符串后序列化时会忽略该字段,ignore
        default:
            return value;
    }
   
});

//JSON字符串缩进,上述方法会把JSON序列化成一行长长的字符串
jsontext = JSON.stringify(book,null,4); //第三个参数表示每个级别缩进的空格数

JSON.parse(jsontext,function(key,value){
     if(key ==‘releaseDate‘){
         return new Date(value); //特定对象要进行字符串还原操作
     }
     else{
         return value;
     }
});

//20.3 小结

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...