欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-20 16:38 作者:橘子的酸果仁  | 我要投稿

JSON:JS对象表示法

    JSON数据:可以是数组、对象、数组和对象的结合

    JSON数据的存在:   前后端的交互主要体现在数据上


    无论后端是什么语言,给到我们前端都是JS能识别的数据形式(JSON数据)


    JSON含义:JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。


    JSON基本语法:

        JSON的顶层支持三种类型的值:

            简单值:数值(Number)、字符串(String,不支持单引号)、布尔类型(Boolean)、null类型

            对象值:由key、value组成,key是字符串类型,且必须添加双引号,值可以是简单值、对象值、数组值

            数组值:数组的值可以是简单值、对象值、数组值

        注意:

            1、复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象

            2、原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)

            3、字符串必须使用双引号表示,不能使用单引号

            4、对象的键名必须放在双引号里面

            5、数组或对象最后一个成员的后面,不能加逗号



    JSON序列化:


        复杂类型转化成JSON格式的字符串遇到的问题:

            比如我们希望将一个对象保存到localStorage中,但是如果我们直接存放一个对象,这个对象会被转化成[object Object] 格式的字符串,并不是我们想要的结果


        JSON序列化方法:

            在ES5中引用了JSON全局对象,该对象有两个常用的方法:


                @1、stringify方法:将JavaScript类型转成对应的JSON字符串

                    语法:JSON.stringify(value[, replacer [, space]])

                        value:将要序列化成 一个JSON字符串的JavaScript对象或值

                        replacer 可选,用于处理将要序列化的值

                            replacer参数:

                                1、如果是null、undefined或其他类型,则被忽略,不做处理

                                2、如果是一个数组,则只有包含在这个数组中的属性名,才会最终被序列化到结果字符串中,只对对象的属性有效,对数组无效

                                3、如果是一个函数,被序列化的值的每个属性都会经过该函数的转换和处理

                        space 可选,指定缩进用的空白字符串,用于美化输出

                    返回值: 一个表示给定值的JSON格式字符串

                   

                @2、parse方法:解析JSON字符串,转回对应的JavaScript类型

                    语法:JSON.parse(text[, reviver])

                        text:要被解析成的字符串。

                            如果传入数字则会转换成十进制数字输出。

                            如果传入布尔值则直接输出。

                            如果传入null则输出null。

                            不支持其他类型的值,否则报错。

                        reviver: 可选,转换器, 可以用来修改解析生成的原始值

                    返回值: JavaScript对象/值, 对应给定JSON文本的对象/值

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律