00:00
啊哈喽,大家好啊,今天呢,给大家分享一下,就杰森这个,呃,今天对象在测试的使用,然后我先呃看给看一下,就是我用的杰森这个实现的这个加包啊,用的是那个阿里巴巴的fast的杰森。嗯,上面这个Jason lab的,呃,是我之前用过的一个时间。这个实现啊,嗯,我看网上说是比较轻量级的,呃的确比较轻量级,而且限制稍微少一点,但是它的主要问题就是呃,就是我之前提到过的,他的呃接成序列化的时候,跟呃服务端接成序列化。的方式可能有些差异,就会导致某些地方代码虽然说是一模一样的,但是结果可能就不一样,所以说我就,而且他第一个。就这个接身实现它的性能是非常非常差的,在并发的时候,如果是你在并发的情况下去处理健身数据的话,还有可能会导致一些测试的误差啊,所以我这里用的是那个阿里巴巴的fast的节省啊,版本是1.2.64啊,今天也就是以以这个版本为基础做那个啊节省的分享。
01:11
然后。首先呢,嗯,我们先创建一个健身对象,然后就是啊new减少,然后我们看一下有一个小小的知识点,就是在。啊,在这里面。大家看那个身对象,他继承了这个杰森,杰森这个是一个。呃,虚拟类,虚拟类这里面会规定一些接近的一些东西,呃,方法啊,属性啊,特性啊之类的,然后大家注意一下这个。它实现了map这个接口。而。它实现mapb这个接口,它里面是有泛型的,但它具体的泛型它用的K是用的。也就是说,呃,我们发展的阶层这个实现呢,它是不允许那个。
02:00
不允许K是其他数据的,呃,其他类型的只能有string,然后它value是可以的啊,这一点跟其他的呃,可能有些不太一样。之前还是呃,之前那个实间就可以把K当做任意类型数据,基础类型的数据也是可以的,然后看完这个知识点之后,我们创建完之后啊,我们就需要对它啊进行一些呃,把数据添加到它里里面去,然后添加的方法,它的这个数据添加方法跟那个。那个map是一样的,就是put,呃,如果是单添加一条数据就是put,大家看一下我填这个。你看我value就可以是int类型的数据,然后呃,K的话只能是string,然后如果我把这个K也变成那个呃,Int的话,它就会报错,然后提示。就是。一个参数类型,然后是错误的,然后需要有string类型。
03:00
这样的。然后我们可以再给他多铺一点数据。啊,现在我们把那个Jason想看看JS里面的这个Jason里面的数据到底是什么样子,有一个output的一个方法啊,这个方法的话。那个我待会儿再讲,然后。嗯,主要的呃功能就是把Jason变成一种,呃,就跟我们到浏览器插件里面,呃呃发的那看到的那个Jason就一层一层的那种形式是一样的,就是格式化输出。我可以给大家演示一下。大家看,呃,这个地方它就是。这个这一层一层的。你看大家看这个,呃,虽然说它的K都是string类型的,但它value有strange,呃也有这个int类型,就基础数据类型,然后如果我把它的。
04:00
呃,Value变成一个。那个布尔值的。大家看到没有?这个二,如果我第一次22PUT的是一个类型的。第一呃,这个又一次我把这个二二的K就put了一个那个布尔值,然后但是他实际上这个杰森的数据。就只有2K2只有一条,就是最后我铺的进去的数据。我把这个改一下。大家看就可以看到。如果后面是string类型的,它就会有引号。如果是int。他就没还有这个for。它是没引号的。这个地这个地方大家稍微注意一下就行了。然后我们还可以在这个呃,Value里面的一个对象。
05:01
啊,比如说我再扑一个六剑圣吧。然后我在这个阶层对象里面put一些,也put一些数据。然后呢,我在在第一个戒指里面put。这我是先又新建了一个健身对象,然后再把这个健身对象,然后再put的。呃,放到第一个接诊对象里面,然后我们看一下它输出的结果。
06:00
诶,大家看这个。这就是。第二次,呃,我又把一个竞争对象破大到一个竞争对象里面,他打印出来的内容。这这是第这算是这边这几行就算是健身的第二层里面的数据了。大概它就是这么一个k k value。但它的value可能是对。这是一种形式,还有一种就是它的value可能就是一个杰的。我我给大家看一下啊。呃,健身而言。我看一下接身速度它是怎么它的,它的源码里面I啊,这个其实就不用看了,呃,这里面你看它这个历直接等于new every历,它是用every历去实现这个接的数的,呃,然后你看它也是继承了一些的操作特性啊,然后呃,实现了历这个接口。
07:02
它就是它就是一个历史,你可以这么理解,它是一个历史的。然后。这个看看能不能直接把put。ADD啊,它的方法也是跟那个ADD。跟那个呃,那个那个什么历史的,它的方法是一样的。啊,我们看一下,如果我添加三个,然后我再把。呃,Jason在put这个。然后。啊,我们看他打印出来什么东西。啊,这样还是不行的。因为我们刚才看到。
08:03
因为我们刚才看到它这个,包括它都实现了一个的一个接口,就是。就是这个接口,这个接口是干什么呢?就是克隆对象的。嗯,这这个接口我看他,我看一下它的。可就这个。接着就这个克隆方法。这是一个克隆新,他新建了一个对象,然后呃,把当前的这个对象的I历放到put的原来的对象里面,这里面嗯,应该可能会涉及到一个深拷贝浅拷贝的问题啊,这里就先不讲,然后大家有兴趣的话,可以看一看我之前的文章,讲那个深拷贝和浅拷贝的。然后大家看这个,呃,控制台的输出啊,好吧,调大一点。
09:00
你看这个。是我们放去放进去的健身对象,然后这个是健身的宿主,大家看宿主就是。一个阶层。啊,这是第二个。这是第三个。就是有一定顺序的123。啊,这个就是健身宿主,然后我们可能还有一种用法就是说。嗯,我先把这个给注释掉。这个阻止掉。就是呃,我可能就是数据从一个呃监身对象,我想把这个监身对象里面的数据放到第一个持对象里面,而不是把第二个对象当做一个value放进去的话,我们还是用那个即点put on。然后把这个接头补G给它放进去之后,我们看一下它现在打印出来的效果。
10:02
哎,大家看。三啊二三,然后我们就全部都是第一级第一层级的KY6啊,你看如果我把第二个。第二个阶层里面,它跟第一个阶层的对象的K有相同的话,我们看它最后二是出来了,是3233还是三二。3243是以后进来的为主的。然后。嗯,创建健身对象啊,就。呃,基础的就先到这里,然后我再给大家演示一下。嗯,我把这个。都天天上。这个也是put。咱平时。肉眼所见的。
11:00
接对象呃,接的数据啊,可能还是以使劲你为主啊,呃,一般的一般来讲呢,就是。呃,不会有数据,不会像这种呃展示的非常有层级关系,一般都是一呃一行六,你完了之后我们还需要把它给你,然后拿到呃插件或浏览器插件或者编译器自带插件里面去,呃让他展示一下,然后我们好看,然后下面演示一下这个。To。传我多多传两遍。大家看这个。这就是我们最常见到的Jason数据类型。呃,杰的。呃,本体吧。我把它。
12:06
放到这里面来。啊,复制的时候,它这个设置这个斜杠加这个冒号是那个idea自带的这个大家可以。这个应该都知道的,然后我们是经常看到的是这种,有时候我们也需要从。嗯,从那个。诶不对,这里面会有这么这个。我有时候我们也需要从这个string类型的数据,然后再转成对象。这个我们呃不同的接实现的话,呃是不一样的,然后这里面我用的一个,我用的这个发的接的话。它是用这个方法点。
13:00
只是这个方法。这个方法实现的,它直接就可以转成一个健身对象。好,杰森。我们先把这个对象打印出来。大家看其实嗯,这个这样看可能不太明显,其实这两个阶段应该是一样的。在这里面。大家看一下。我们还可以去。呃,比较一下这两个节省。啊,理论上来讲它应该是一致的。啊,处就是一样的。啊,这这个是这个是用的会可能会比较多一点,然后如果是呃,大家去呃,比如说从服务端日志里面去拿到这个东西的话,也可以用这个方法去转成一个建设GK的,然后我们在可能这个服务端日志里面会有超长的工参,可能得有四五个五六个,像我们做端上测试,端上接口测试的话,他什么。
14:13
呃,屏幕尺寸呐,这怎么?呃,那个M呃那个ma Mac地址啊,还有屏安卓的版本啊,系统的呃类型啊,这些乱七八糟参数它都会有,比较省事的话,就直接把日志里面这一块全拿出来,完了之后如果我们要修改什么,呃修改什么东西的话啊,比如说呃,我介绍一。哎,我想把它那个。某一个值,我们往上看一眼啊。啊,就修修改这个吧。我们我们把这个去修改掉这个值,或者说我覆盖掉这个值。然后我们现在看一下这个还是不是相等,理论上来说就是不相等,因为它这个这个k value value值已经修改了啊,这就是for。
15:08
可以用这个方法。还有就是参数特别麻烦,呃,我像嗯像我们可能会遇到的就是呃,比如说我要提交一个试卷的一个作答,这道试卷可能有呃呃七八个大题,然后有些大题可能有小题,像英语完形填空啊这种鬼样子的。因为我们很难去。我要去拼这个那个健身对象的话特别痛苦。呃,所以的话,我们就可以直接把他那个接身,呃,可以先去服务端录个日志,然后转成一个健身对象,然后我们再去对这个接身对象啊,进行格式化处理之后,然后我们再比如说我要修改啊这个艾瑞这个。这个value k的value值啊,我们就可以用这种方法啊,这是。
16:00
那个呃,新建接层对象,然后往接身对象里面,呃,存放数据啊,就先讲这么多。
我来说两句