对于上一章的三种方法,我少讲了一个参数(ajax
表示,哼,明明少讲了三十多个……
是数据的类型,用来告诉程序,从网址获得的数据是什么类型的。支持的类型挺多的:xml, json, script, html ……
不过这些影响的主要是返回值。像这样:
const data = $.get(url, data, function(){ …… })
如果类型是 text、xml 就是没经过处理的数据……
问题是,我说了,从发起请求,到获得数据,这中间有一定的时间。这样获得返回值并不能立刻使用(因为并不是立刻获得。
对,有一些方法可以解决。但是我不想搞得那么麻烦,我记不住,所以我就单纯的喜欢回调函数,这个简单,好理解。而获取到的数据传入回调函数时,只是单纯的字符串而已。所以,在我的用法里,数据类型这个参数就不怎么重要。
但是,JSON 这个数据类型,还是值得我们认识一下的。它是什么呢?当我们有比较多,比较复杂的数据需要存储,传递的时候。我们肯定会选用数组和对象把这些数据整理在一起,对吧?JSON 差不多就是一个这样格式的数据,然后把它保存成一个 json 后缀的文件。这样我们就可以把数据放在一个文件里,进行储存、读取、传递。
如果我们把上面说到的方法中的数据类型设置为 json,程序就会认为获得的内容是一个 JSON 文件。并试图把它转换为 js 对象放进返回值里。
但是我上面也说了,实际获得的都是字符串,只是后面如何处理的问题。所以,我们的数据以一定的格式写成字符串,存入文件,这是 JSON。当然本质上就是文本文档。使用的时候读取这些文本,经过转化,还原为数据。
const a = {name: '喵喵喵', age: 12}const jsonStr = JSON.stringify(a)
这样就把对象 a
变成了 JSON 格式的字符串。
const obj = JSON.parse(jsonStr)console.log(obj.name)
这样就又把字符串还原回了数据。这个方法在数据存储相关的操作中非常常用。但是很简单啊,上面就是两个转换方法,照着抄就行了。
如果只是简单的获取 JSON 数据,jQuery 提供了一个 getJSON
的方法,对,这也是一个偷懒的简化方法,毕竟在发起请求获取数据这方面,ajax
足以蔑视一切了。其他方法,都是对它的简化而已。
所以,getJSON
方法等效于:
$.ajax({dataType: "json",url: url,data: data,success: success});
没写 type
就默认用 get,何况名字都叫 getJSON
了,肯定就只能是 get 方法发送数据了。
$.getJSON( url, data, function(){} )
请求的地址,要发送的数据,和回调函数。回调函数可以获得三个参数……怎么觉得和前面的差不多啊!
回调函数获得的第一个参数不再是文本啦,而是一个数据对象。其实就是把获取到的文本当成 JSON 转换为数据之后再传过来,让我们可以少写一行代码……
暂无评论内容