JSON详解

2017-06-02  本文已影响0人  胡博术

JSON不是一种编程语言,它只是一种数据结构

是啥就不介绍了,直接进入主题。

JSON的语法可以表示三种类型的值

5  //数字
"hello world"  //字符串(JSON必须使用双引号)
//布尔值和null也是有效的JSON形式
{
    "name": "hu",
    "age": 25
}
//与JS对象字面量相比,不用声明变量,末尾不需要封号
[
    {
        "title": "BOOK1",
        "year": 2011
    },
    {
        "title": "BOKK2",
        "year": 2017
    }
]

JSON对象

JSON对象有两个方法:stringify()parse,用于把JS对象序列化为JSON字符串和把JSON字符串解析为原声JS值。

注意:在序列化JS对象时, 所有的函数原型成员都会被有意忽略,不体现在结果中,并且值为undefined的任何属性也都会被跳过

序列化选项 stringify()参数

除了要序列化的对象,还可以接收两个参数

  var book = {
          title: "mybooks",
          year: 2017,
          pages: 500,
          edition: 3
      }
JSON.stringify(book, ["title", "edition"]) 
//result
//{"title": "mybooks", "edtion": 3}

当为函数时,函数会接收两个参数,键名和属性值,函数返回的值就是相应的键的值,如何值为undefined,那么会被忽略

 var book = {
          title: "mybooks",
          year: 2017,
          pages: 500,
          edition: 3
      }
var jsonText = JSON.stringify(book, function(key, value){
        switch(key){
            case "page":
                return 1000
            case "edition":
                return undefined;
            default:  //必须提供
                return value
        }
    })
// {"title": "mybooks", "page": 1000, year: 2017}
上一篇下一篇

猜你喜欢

热点阅读