00:00
各位,我们来看一下这个杰森,那我们就是说在做这个文件操作的时候呢,不可避免的要去讨论杰。那首先我们来看看JS是什么?接着呢,它的全称是javascript object not,就是Java对象的一个标记啊呃,标标记法,那也就是说它可以把什么呢?它可以把我们的数据。按照杰森的格式进行这样一个传输,明白我的意思吧,也就是说杰森这个格式呢,它是一种轻量级的数据交换格式。它是一种轻量级的数据交换形式,它利于人的阅读和编写。而且呢,利于机器的解析和生成,那我这样讲呢,可能大家还不太清楚这个阶层是什么,除非你曾经学过,那后面呢,我会给大家举些案例,让大家认识一下这个Jason Jason他最经典的用法就是k value。
01:02
它总是k value k value这种形式来描述一个一,一个111个信息的明白,好那么这个机层我们先做面上的一些介绍,他在2001年的时候呢,就开始推广和使用了,目前已经成为主流的数据格式,也就说目前呢,我们在这个编程里边Jason,它是一种主流的数据传输格式。那具体来说是这样子的,比如说呃,接着呢,它有利于网络传输。效率,通常在程序网络传输时,先将数据,比如说结构体啊或者map,先把它序列化,节省字符串,然后到接收方得到这个节省字符串时呢,再反序列化,恢复成原来的数据,比如说结构体或者map,然后。再进行一个操作,那这里呢,就出现了有一个概念叫序列化和反序列化的概念。
02:02
一个是序列化,还有一个叫反序列化,这两个概念呢,我们放在后面去讲好吧。现在我给大家,我给大家说一下Jason这种格式的应用场景,那么说完这个应用场景过后呢,大家可能对Jason这个格式会有一种。比较形象的认识,那我们来看一下他是怎么来玩的。那我画一个图。我们来看一下Jason的应用场景。OK,注意听啊,同学们,杰森。的应用场景。那我举个例子,比如说我们就这样说吧,我们举第一个场景就是,呃,浏览器就是web编程。Web编程中。编程中的应用。那么大家知道web编程呢,它是一种CS结构的啊,它是一个一种BS结构的,那就意味着这边呢。有我们的一个web服务器。
03:03
这边有一个web服务器。注意听啊,Web服务器,那假设这个服务器呢,就是用go语言写的,就是我们这个web服务器呢,是用go语言写的。听听我说啊,那这边呢,是有一个浏览器。假如这边是我们的浏览器。那浏览器是什么无所谓啊,具体是IE浏览器还是谷歌浏览浏览器,这个无所谓。那现在呢,我们就要开始进行一个操作了,比方说我这个服务器呢,要返回一些数据给浏览器,那一般会怎么做呢?大家看首先呢。这样子的。好,我把它标一个另外的颜色。比如。比如我们要给浏览器返回。返回什么呢?返回一个数组。比如说表示城市表,表示一个省有多少城市的一个数组,那我会怎么做呢这样做。
04:02
比如说这里面有个go。构数组。对吧,这个数组呢,我们不会直接返回给他,往往会这样处理一下。怎么处理?大家看看这个代码啊。首先呢,我们把它。节省。注意,我们把它节省化。杰森。进行这个节省处理。健身序列化。明白我的意思吧,也就是说我们先把这个构数组,把它进行一个节省序列化,序列化过后呢,在这里我们就得到了一个节省字符串。那么这个时候呢?我们把切省字符串返回给。我们的浏览器。那为什么有些同学可能就要问了,说老师为什么不把这个数组直接返回给浏览器呢?因为。我们这个杰森,杰森这这种字符串啊,它特别利于网络的传输,因为这种格式很科学。
05:07
那具体是什么格式,我待会再说,好吧,它进行这个网络传输。这就传过去了。对不对,传输。那么传输了过后呢,我们浏览器接收到这个节省支付出来过后呢,它一般会怎么处理呢?它会进行一个反序列化。也就是说,我们浏览器先接收到了。这个结成字符串。它接收到截成字符串,那么结成字符串呢?我们往往还要把这个结分字符串再重新。怎么样反序列化成一个数组,或者是一个其他的什么数据,对不对,那这个时候呢,我们还要进行一个反序列化。就是拿到过后呢,我们要把它恢复成原来的一个数组,对吧,诶这样子。
06:00
OK。那这个时候呢,我们进行一个反序列化的操作。叫做节省反序列化。那反利化、反序列化的目的是干什么呢?反序化、反序列化的目的就是要重新得到。又又生成了啊,又又还原成。哦,还原。它还原成数组了,或者其他什么类型都有可能,然后呢,让这个数组通过这个数组我们再来进行一个显示操作,因为你这边的返回这个数组呢,最终是要显示在浏览器的嘛,对不对,那我还原次数组过后,我再用来显示在显示。在进行这个,呃,这个盗墓编程对吧,盗墓编程进行显示,一般来说是这样一个流程,那大家看到我们这个网络传输的时候呢,往往是用接省这种格式来进行传输的,能理解我的意思吧。
07:01
就说我们往往是在这个地方传输的时候呢,大家都遵守。目前就遵守节省格式。都遵守这种节省格式。因为这种计算格式呢,它。更加利于网络的传输,因此目前很多程序都采用的是节省这种标准的数据格式来进行传输。各位同学,这是web编程的应用,那反过来了,同学们,我们也可能是这样子的,就说假设我们用go编写了一个网络程序,比如说聊天程序,他也可以用机来进行这个传输,打个比方。比如说现在我用这个go写了一个网络编程,叫TCP编程,那这块呢,我们做了一个聊天,用go语言写了个聊天系统go。写了聊天系统。比如说叫做聊天。
08:01
聊天。聊天系统。那如果是聊天系统的话呢,他也可以在,因为你聊天嘛,肯定是数据要从A客户端发到B客户端,对不对,那这个时候呢,我们也可以用这个Jason这个格式来进行传输。打个比方,打个比方现在呢。我在服务器这头。大家看到。我在服务器,假假如是我们,我们打个比方啊,同学们说我这有两个客户端。这有一个客户端。这个客户端A。客户端AOK,这有一个客户端B。这有一个客户端B。那么A和B他们之间要进行通讯呢?往往要经过我们的中转服务器,比如说这里是我们的一个服务器后台服务器。
09:01
后台服务器是个原写的好吧,那么这个时候呢,我们假设要把这个。呃,客户端A的一个信息发给这个B,那我们也会通常选用用接生的形式来进行这个处理,比如说我这有个数组。假如我这个数组,那么我先把这个数组呢,把它转成一个接字符串。节省字符串,OK,那当然这里面我们可能会用到序列化。对吧,我们可以用到序列化。那一旦我拿到这个字符串过后呢,诶,OK,我就把这个字符串传给这一个go后台的就是我们这个服务器。对不对,那这个go后台服务器拿到这个阶层字符串过后呢,他再原封不动的把这个阶层字符串再传回给B客户端。因为你在传送的时候,肯定这里面会指定我要把这句话发送给哪一个客户端,对不对,假设这个数字我要发送给B客户端,好这个呢,它就相当于在这里做了一个中转。
10:11
大家理解我的意思吧,就是说相当于我们后台这个购呢,它做了一个中转中转的工作。做了一个中转。中转。OK,那这边他把数据拿到这,这边过后B客户端呢,他拿到是什么呢?其实B客户端他拿到是一个节省字符串。能理解我的意思吧,节省字符串,那么这个节省字符串呢,它往往会把它进行一个反序列化。反序列化。那么反序列化会得到一个什么呢?A又会得到一个对应的数组。然后我们再显示。OK,那整个这个流程,比如说这个数据把A客户端的数据传给这个中转服务器,中转服务器再把数据传给B客户端,在这个流程呢,他仍然遵守的是节省这种数据格式。
11:11
你比如说在这它传输的是按照接省这个格式来传输的,他在中转的时候呢,诶它也用这种接省格式的数据来中转,那这样有个什么好处呢?各位朋友,那这样的好处就是大家如果都遵守节省这种数据格式的话,我们的程序就比较容易控制了。也就是说大家都遵守接省数据格式,那么我们在转换的时候呢就比较方便,如果A客户端用的是一种数据格式,B客户端用的是另外一种数据格式,那显然我们在进行通讯的时候就很困难了。你比方说有两个人聊天。那比如说韩老师是中国人,我在聊天的时候呢,我说的是汉语,那如果对方也是汉语,呃,也是一个中国人,我们聊天就比较怎么样。
12:02
顺畅,因为我说每句话呢,他都能听得懂,比如说我说哎,咱们今天晚上吃个红烧肉,他就知道什么意思了。但反过来,如果对方是一个。比如说他是一个法国人。那我说今天晚上吃红烧肉,他可能就听不懂对不对,因为他的大脑里面编码他是法语,除非他学过中文。所以说我们为了让。这两个之间他们能够通讯比较顺畅呢,大家都会遵守这个建制,目前节省这种数据格式呢,因为它非常的轻便,而且比较容易控制高效,因此现在呢,不管是我们的外部编程,外部编程是BS嘛。还是我们的这种TCB编程,比如说CS。目前呢,大家在传输的时候基本上都遵守JA省这个格式,好,这个呢老师就介绍了两种应用场景,大家体会一下好吧,那当然现在讲了半天呢,我们还没有说杰省这个数据格式到底长什么样子,下面呢,我们就准备给大家聊一下Jason数据格式是什么。
13:08
好,我先把这个呢给同学们板述一下。好,我先板述一下啊。板书一下。好,我来走一下这个案例。啊,刚才呢,我们讲的是杰森的一个基本介绍。最听讲啊,同学们。好,我把它整理一下。这个我们来一个二号标题吧。对吧,我先做了一个概述。是不是我做的概述啊?把Jason这个概念做了一个介绍,然后呢,我们举了一个应用场景。应用场景,并且呢,我们画出了示意图。能理解吧,那概述呢,我说了哪些东西,我们来看一下。那我介绍了一下Jason它的一个汉语,呃,这个全称是javascript object notation就是Java对象标记符,那么标记标记方式啊,Locationation是标记法的意思,Locationtation这个是英文,它翻译成中文是标记法,那也就是说它是用Java object的方式来进行一个标记的,或者说来组织这个数据格式的。
14:17
那么它是一个轻量级的数据交换格式,目前呢,大家就记住一句话,它是主流的数据格式就可以了。那你看我这个示意图,这个示意图和我们这画的示意图其实大同小异,只是我这画的更加的详细了一点,你看他是怎么走的。勾浪程序先序列化,把它序列化成一个节省支符串,然后呢,这个节成字符串通过网络传输给另外一个程序,这个另外这个程序呢,可能是一个浏览器,也可能是一个另外一个勾浪程序,它把它再反反序列化,反序列化过后呢,又会得到原先的这种数据格式,比如说原先是结构体或者是map都可以。明白吧,由他反序列化过后呢,可以拿到这个接省字符串,它原先对应的那种真正的数据类型,然后他再进行使用,其实这个图画的就是跟我一样,只是我画的更加的怎么样清楚,更加的细致而已。
15:15
好,这是它的一个基本介绍,我先给大家拿到笔记里面来。大家有一个印象啊,同学们。我先把它整理一下。然后呢,我们又介绍了一个应用场景,我写了两个应用场景,一个呢就是web编程里面BS结构的一个节省的应用场景,主要是体现出它在传输的时候,它是做一个标准格式来进行这个传输的,由如它大家都遵守这个接格式,OK,那么这个呢,是一个TCP的一个CS结构,它也是按照我们接的格式来进行控制的。好,我把这两个图呢给大家。幻想。哦了,同学们。我直接保存到我们的笔记里面去,大家应该应该能看懂,对不对?好,那现在呢,这个就是我们关于接生的一个基本的介绍,大家先把它过一下啊,把它过一下,尤其是这两张图,对我们后面写程序会有一个指导意义,它是一个架构。
16:16
就是说我们站在一个,呃,站在一个这个整体的角度来看的话呢,那这两个图就非常的有价值,好,那关于基本介绍先给同学们说到这里。
我来说两句