本教程演示瞭如何使用JavaScript從遠程服務器收到的有效解析JSON數據。 我們將分兩個步驟介紹該過程:將JSON字符串解碼為可用的JavaScript結構(對像或數組),然後遍歷該結構以訪問數據。 我們將使用XMLHttpRequest
和更現代的fetch
api的實踐示例。
密鑰概念:
for...in
Object.entries
Object.values
forEach
理解JSON:> json對象:
>名稱/值對的集合(類似於JavaScript對象)。
>讓我們以api(一個簡單的笑話API)為例。 此API返回JSON數據時,將標題設置為XMLHttpRequest
>。 >。
icanhazdadjoke
響應是字符串。 我們使用Accept
:application/json
對其進行解析。
>現在,我們可以迭代對象的屬性。 以下是幾種方法:
const xhr = new XMLHttpRequest(); xhr.onreadystatechange = () => { if (xhr.readyState === XMLHttpRequest.DONE) { console.log(typeof xhr.responseText); // Output: string console.log(xhr.responseText); // Output: JSON string } }; xhr.open('GET', 'https://icanhazdadjoke.com/', true); xhr.setRequestHeader('Accept', 'application/json'); xhr.send(null);
JSON.parse()
if (xhr.readyState === XMLHttpRequest.DONE) { const response = JSON.parse(xhr.responseText); console.log(response); // Output: Parsed JavaScript object }
for...in
:for (const key in response) { if (response.hasOwnProperty(key)) { console.log(`${key}: ${response[key]}`); } }
Object.entries()
api:Object.entries(response).forEach(([key, value]) => { console.log(`${key}: ${value}`); });
解析響應主體作為JSON,並返回通過解析數據解決的諾言。 fetch
>讓我們從GitHub API中獲取一個存儲庫列表:fetch
(async () => { const response = await fetch('https://icanhazdadjoke.com/', { headers: { Accept: 'application/json' }, }); const jsonData = await response.json(); Object.entries(jsonData).forEach(([key, value]) => { console.log(`${key}: ${value}`); }); })();
>或response.json()
)進行更複雜的操作。
結論:
該教程涵蓋了使用JavaScript中的JSON響應進行解析和迭代的基本步驟,同時使用XMLHttpRequest
和fetch
> api。請記住在生產環境中處理潛在錯誤(例如,網絡問題,無效的JSON)。 具有基於承諾的方法的API通常是其清潔語法和更好的錯誤處理功能的首選。
以上是如何通過JavaScript中的JSON響應循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!