JSON简介

1.JSON语法

JSON是一种轻量级的数据交换花样。
JSON语法能够示意以下三种范例的值:

  • 简朴值:string,number,boolean,null,不支持undefined

  • 对象

  • 数组

语法:

  1. JSON字符串必需运用双引号

  2. 没有声明变量

  3. 没有末端的分号

2.JSON剖析与序列化

2.1JSON序列化

序列化函数:JSON.stringify()
JSON.stringify()可吸收三个参数:

  • 要序列化的JavaScript对象

  • 一个过滤器(能够是一个数组也能够是一个函数)

  • 掌握效果中的缩进和空白符
    用法1:过滤效果

//数组过滤器
var book = {
                "title":"Professional JavaScript",
                "edition":3,
                "year":2011,
                "authors":[
                    "EvanChen",
                    "Nicholas"
                ]
            };
var jsonText = JSON.stringify(book,["title","edition"]);//jsonText 中只包括title,edition两个属性
//函数过滤器
var book = {
                "title":"Professional JavaScript",
                "edition":3,
                "year":2011,
                "authors":[
                    "EvanChen",
                    "Nicholas"
                ]
            };
var jsonText = JSON.stringify(book,function(key,value){
    switch(key){
            case:"authors":
                return value.join(",");
            case:"year":
                return 5000;
            case:"edition":
                return undefined;//相当于删除该属性
            default:
                return value;

        }
   }             
 );//jsonText 中只包括title,edition两个属性

用法2:字符串缩进

var book = {
                "title":"Professional JavaScript",
                "edition":3,
                "year":2011,
                "authors":[
                    "EvanChen",
                    "Nicholas"
                ]
            };
var jsonText = JSON.stringify(book, null,4);
console.log(jsonText);
//输出效果
{
    "title": "Professional JavaScript",
    "edition": 3,
    "year": 2011,
    "authors": [
        "EvanChen",
        "Nicholas"
    ]
}

2.2剖析选项

函数:JSON.parse()
JSON.parse()可吸收两个参数

  • JSON数据

  • 复原函数,该函数将在每一个键值对上挪用

var book = {
                "title":"Professional JavaScript",
                "edition":3,
                "year":2011,
                "authors":[
                    "EvanChen",
                    "Nicholas"
                ],
                releaseDate:new Date(2011,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;
        }
    }
);
console.log(bookCopy.releaseDate.getFullYear());
    原文作者:Evan_Chen
    原文地址: https://segmentfault.com/a/1190000004665150
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞