zoukankan      html  css  js  c++  java
  • js-JavaScript高级程序设计学习笔记16

    第20章 JSON

    JOSN,JavaScript对象表示法,是JS的一个严格的子集,但是它是一种数据格式,虽然与JS具有相同的语法形式,但是不从属于JS。

    1、语法

    ①可表示简单值——字符串、数值、布尔值、null,但不支持undefined

    对象——复杂数据类型,一组无序键值对儿,值可以是简单值也可以是复杂数据类型的值;

    数组——复杂,一组有序的值的列表,数组的值可以是任意类型。

    JSON不支持变量、函数或对象实例。

    1、简单值。

    JSON字符串必须使用双引号

    2、对象。

    JSON中对象要给属性加双引号,JS中可加可不加。JSON不用声明变量,没有末尾的分号。

    3、数组。

    与JS语法相同。不用声明,没有分号。

    2、解析与序列化

    可以把JSON数据结构解析为有用的JS对象。

    1、JSON对象。

    全局对象JSON。两个方法:stringify()和parse(),前者把JS对象序列化为JSON字符串,后者JSON字符串解析为原生JS值。

    2、序列化选项。

    JSON.stringify()除了要序列化的JS对象外,还可以接收两个参数——过滤器和是否保留缩进

    ①过滤结果

    如果过滤器参数是数组,那么结果将只包含数组中列出的属性。

    ②字符串缩进

    如果参数是一个值,那么表示的是每个级别缩进的空格数,最大为10,换行符会被保留。

    参数也可以是一个字符串,那么字符串会被用作缩进字符,最大为10.

    ③toJSON()方法

    假如把一个对象传入JSON.stringify(),序列化对象的顺序如下:

    Ⅰ、如果存在toJSON()方法而且能通过它取得有效的值,则调用该方法。否则返回对象本身;

    Ⅱ、如果提供了第二个参数,应用这个函数过滤器。传入函数过滤器的值是第Ⅰ步返回的值;

    Ⅲ、对第Ⅱ步返回的值进行序列化;

    Ⅳ、如果提供了第三个参数,执行格式化。

    3、解析选项

    JSON.parse()方法也可以接收一个参数,该参数是一个函数,称为还原函数。如果还原函数返回undefined,则删除相应的键,如果返回其他值,将值插入到结果中。

  • 相关阅读:
    HDU 5642 King's Order 动态规划
    HDU 5640 King's Cake GCD
    HDU 5641 King's Phone 模拟
    HDU 5299 Circles Game 博弈论 暴力
    HDU 5294 Tricks Device 网络流 最短路
    HDU 5289 Assignment rmq
    HDU 5288 OO’s Sequence 水题
    星际争霸 虚空之遗 人族5BB 操作流程
    Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
    Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6196415.html
Copyright © 2011-2022 走看看