美文网首页
JSON详解

JSON详解

作者: 胡博术 | 来源:发表于2017-06-02 11:46 被阅读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}
  • 第二个参数是一个选项,表示是否在JSON字符串中保留缩进
    • 数字(用于控制每个级别的缩进空格数,最大长度为10)
    • 字符串(被作为缩进字符,最大长度也为10)

相关文章

网友评论

      本文标题:JSON详解

      本文链接:https://www.haomeiwen.com/subject/ivqnxxtx.html