zoukankan      html  css  js  c++  java
  • JS复习:第二十章

    一、JSON

    1.JSON的语法可以表示以下三种类型的值:

      (1)简单值:字符串、数值、布尔值和null。如:5,“Hello,World!”

      (2)对象:javascript中对象字面量:

            var person = {

              name : "Nicholas",

              age : 29

            };

            JSON表示上述对象的方式如下:

            {

              "name" : "Nicholas",

              "age" : 29  

            }

            也可以像下面这样嵌入对象:

            {

              "name" : "Nicholas",

              "age" : 29,

              "school" : {

                "name" : "Merrimack College",

                "location" : "North Andover,MA" 

              }  

            }

        与javascript不同,JSON对象的属性名必须始终加双引号。

      (3)数组:JSON数组采用的就是javascript中的数组字面量形式。

          例如,下面是javascript中的数组字面量:

          var values = [25,"hi",true];

          在JSON中,可以采用同样的语法表示同一个数组:

          [25,"hi",true]

        把数组和对象结合起来,可以构成更复杂的数据集合:

        [

          {

            "title" : "Professional JavaScript",

            "authors" : [

              "Nicholas C. Zakas"

            ],

            edition : 3,

            year : 2011

          },

          {

            "title" : "Professional JavaScript",

            "authors" : [

              "Nicholas c. Zakas"

            ],

            edition : 2.

            year : 2009

          },

        ]

      对象和数组通常是JSON数据结构的最外层形式。

    二、序列化选项

      stringify( )和parse( )

      stringify( )接收两个参数:第一个参数可以是一个数组也可以是一个函数;第二个参数是一个选项,表示是否在JSON字符串中保留缩进。

      1.过滤结果:

      如果过滤器参数是数组,那么JSON.stringify( )的结果中将只包含数组中列出的属性。例如:

      var book = {

        [

          {

            "title" : "Professional JavaScript",

            "authors" : [

              "Nicholas C. Zakas"

            ],

            edition : 3,

            year : 2011

          },

        ]

      };

      var jsonText = JSON.stringify( book ,["title" , "edition"] );

      JSON.stringify( )的第二个参数是一个数组,其中包含两个字符串:"title"和"edition"。因此返回的数据就只会包含这两个属性:{"title":"Professional JavaScript","edition:3"}

      2.字符缩进

      JSON.stringify( )的第三个参数用于控制结果中的缩进和空白符。例如,要在每个级别缩进4个空格,可以这样写代码:

      var book={

            "title" : "Professional JavaScript",

            "authors" : [

              "Nicholas C. Zakas"

            ],

            edition : 3,

            year : 2011

          };

      var jsonText = JSON.stringify(book,null,4);

      保存在jsonText中的字符串如下所示:

      {

        "title":"Professional JavaScript",

        "authors":[

          "Nicholas C. Zakas"

        ],

        "edition":3,

        "year":2011

      }

      3.toJSON( )方法

      可以为任意对象添加toJSON( )方法,比如:

      var book={

            "title" : "Professional JavaScript",

            "authors" : [

              "Nicholas C. Zakas"

            ],

            edition : 3,

            year : 2011

            toJSON : function( ){

              return this.title;

            }

          };

      var jsonText = JSON.stringify(book);

  • 相关阅读:
    3B1B微分方程系列笔记(一)
    洛谷P1127 【词链】欧拉通路,欧拉回路+dfs
    龟速乘,快速乘法
    单调队列优化O(N)建BST P1377 [TJOI2011]树的序
    洛谷 p4302的dp中的细节讨论
    manacher(马拉车算法)
    博弈论(入门,持续更新)
    洛谷P1295 [TJOI2011]书架 线段树优化dp,单调栈
    洛谷P1712 [NOI2016]区间 尺取法+线段树+离散化
    洛谷 P1131 [ZJOI2007]时态同步
  • 原文地址:https://www.cnblogs.com/koto/p/5304943.html
Copyright © 2011-2022 走看看