Rumah >hujung hadapan web >tutorial js >Cara gelung melalui respons json di javascript
dan lebih moden XMLHttpRequest
api. fetch
Konsep Utama:
for...in
, Object.entries
, atau kaedah array (Object.values
forEach
data json boleh disusun dalam dua cara:
: XMLHttpRequest
mari kita gunakan API
ditetapkan ke icanhazdadjoke
. Accept
application/json
Pertama, kita mengambil data:
Respons adalah rentetan. Kami menghuraikannya menggunakan
<code class="language-javascript">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);</code>:
JSON.parse()
<code class="language-javascript">if (xhr.readyState === XMLHttpRequest.DONE) { const response = JSON.parse(xhr.responseText); console.log(response); // Output: Parsed JavaScript object }</code>
for...in
<code class="language-javascript">for (const key in response) { if (response.hasOwnProperty(key)) { console.log(`${key}: ${response[key]}`); } }</code>
Object.entries()
<code class="language-javascript">Object.entries(response).forEach(([key, value]) => { console.log(`${key}: ${value}`); });</code>mengambil json dengan
api: fetch
API
fetch
<code class="language-javascript">(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}`); }); })();</code>memasangkan badan tindak balas sebagai JSON dan mengembalikan janji yang menyelesaikan dengan data yang dihuraikan.
response.json()
mari kita ambil senarai repositori dari API GitHub:
Contoh ini menunjukkan lelaran melalui array JSON menggunakan
<code class="language-javascript">(async () => { const repos = await fetch('https://api.github.com/users/jameshibbard/repos').then(res => res.json()); repos.forEach(repo => { console.log(`${repo.name} has ${repo.stargazers_count} stars`); }); })();</code>. Anda boleh menggunakan kaedah array lain seperti
atau forEach
untuk operasi yang lebih kompleks. map
filter
Tutorial ini meliputi langkah -langkah penting parsing dan meleleh melalui respons JSON dalam JavaScript, menggunakan kedua -dua XMLHttpRequest
dan fetch
API. Ingatlah untuk mengendalikan kesilapan yang berpotensi (mis., Isu rangkaian, JSON tidak sah) dalam persekitaran pengeluaran. API fetch
, dengan pendekatan berasaskan janjinya, biasanya lebih disukai untuk sintaks bersih dan keupayaan pengendalian ralat yang lebih baik.
Atas ialah kandungan terperinci Cara gelung melalui respons json di javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!