⊗jsSpExcJSE 149 of 294 menu

Näide erandist JSON-iga JavaScriptis

Oletame, et kuskilt välismaailmast tuleb meile JSON tootega:

let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount);

Te juba teate, et meetod JSON.parse viskab erandi, kui JSON on vigane. Püüame selle erandi kinni:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // reageerime erandile kuidagi }

Siiski võib juhtuda, et JSON ise on korrektne, kuid ei sisalda vajalikke välju, näiteks puudub hinna väli:

let json = '{"product": "apple", "amount": 5}'; // hinna pole

Ütleme, et see on samuti erandlik olukord ja sellisel juhul viskame oma kasutajalikku erandit:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'tootelt puudub hind voi kogus' }; } } catch (error) { // reageerime erandile kuidagi }

Nüüd saab plokk catch kaks tüüpi erandeid: kas JSON on üldse vigane, siis on erand tüüpi SyntaxError, või JSON on korrektne, kuid ei sisalda vajalikke välju, ja siis on erand tüüpi ProductCostError.

Püüame plokis catch kinni need erandite tüübid:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'tootelt puudub hind voi kogus' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Vigane toote JSON'); } else if (error.name == 'ProductCostError') { alert('Tootel puudub hind voi kogus'); } }

Oletame, et teile tuleb JSON sellisel kujul:

let json = `[ { "name": "user1", "age": 25, "salary": 1000 }, { "name": "user2", "age": 26, "salary": 2000 }, { "name": "user3", "age": 27, "salary": 3000 } ]`;

Kontrollige selle JSON-i üldist korrektsust parsimisel ja pärast parsimist kontrollige, et tulemuseks saadakse massiiv, mitte midagi muud. Kui tulemuseks saadakse mitte massiiv - visake erand.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu