美文网首页
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