Javascript 作為一個(gè)腳本語言,具有靈活性和易于操作的特點(diǎn);一般用于前端開發(fā)的場(chǎng)景中。在前端開發(fā)中,我們經(jīng)常需要使用 JSON 格式的數(shù)據(jù)進(jìn)行傳參或者接收數(shù)據(jù),那么使用 Javascript 導(dǎo)入 JSON 式數(shù)據(jù)是非常常見的一種技巧。在 Javascript 中導(dǎo)入 JSON 的方式也有多種,下面就為大家介紹幾種常見的方法。
在原生的 Javascript 中,我們可以使用 XMLHttprequest 來獲取外部的 JSON 文件。
var request = new XMLHttpRequest(); request.open('GET', 'data.json', true); request.onreadystatechange = function() { if(request.readyState === XMLHttpRequest.DONE && request.status === 200) { var data = JSON.parse(request.responseText); // Do something with data } }; request.send();
上述的代碼中,我們先使用了 XMLHttpRequest 來創(chuàng)建一個(gè)異步的 GET 請(qǐng)求,然后監(jiān)聽了請(qǐng)求的狀態(tài)。當(dāng)請(qǐng)求的狀態(tài)為 XMLHttpRequest.DONE (請(qǐng)求已完成)并且請(qǐng)求的狀態(tài)碼為 200(請(qǐng)求成功)時(shí),我們就將獲取到的 JSON 數(shù)據(jù)使用 JSON.parse 方法轉(zhuǎn)換為 Javascript 對(duì)象。
另外我們也可以使用 jQuery 的 $.getJSON 方法來加載 json 文件,代碼如下:
$.getJSON("data.json", function(data) { // Do something with data });
已經(jīng)使用引入 jQuery 的方式加載了 jQuery.js 文件,然后使用其提供的 $.getJSON() 方法來獲取數(shù)據(jù)。一般不推薦使用 jQuery 是因?yàn)樗鼤?huì)加載不必要的代碼導(dǎo)致頁面速度變慢。
還有一種方式是使用 fetch API 來進(jìn)行請(qǐng)求,代碼如下:
fetch('data.json') .then(response =>response.json()) .then(data =>console.log(data));
fetch API 是在 ES6 中引入的新的 API,可以很方便的使用 Promise 來進(jìn)行鏈?zhǔn)骄幊獭etch() 方法會(huì)返回一個(gè) Promise 對(duì)象,然后我們用 then() 方法取得響應(yīng)并將響應(yīng)對(duì)象轉(zhuǎn)換為 Javascript 對(duì)象,并打印出來。
總的來看,以上這些方法都可以用來導(dǎo)入 JSON 數(shù)據(jù)。具體的而言,選擇哪一個(gè)方法主要取決于項(xiàng)目的情況,在這里為大家提供幾種常見的方法供大家參考。