⊗jsSpExcJSE 149 of 294 menu

JavaScript-dä JSON bilen çäklemeleriň nusgasy

Bize daşary dünýäden nädire bir JSON önümi bilen geler diýeliň:

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

Siz bilýäňiz ýaly, usul JSON.parse, JSON nädogry bolsa, çäklemeleri atar. Geliň bu çäklemäni tutalyň:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // çäklemä nähili bolsa şeýle jogap berýäris }

Şeýle-de bolup bilýär, JSON özi dogry, ýöne bize zerur meýdanlary ýok, mysal üçin, bahasy ýok:

let json = '{"product": "apple", "amount": 5}'; // bahasy ýok

Geliň diýeliň, bu hem çäklemeli ýagdaýdy we şeýle ýagdaýda öz ulanyjy çäklemämizi atarys:

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: 'önümde baha ýa-da sany ýok' }; } } catch (error) { // çäklemä nähili bolsa şeýle jogap berýäris }

Indi catch blogy iki görnüşli çäklemeleri alar: ýa JSON doly nädogry, şonda SyntaxError görnüşli çäklemeler bolar, ýa-da JSON dogry, ýöne bize zerur meýdanlar ýok, şonda bolsa ProductCostError görnüşli çäklemeler bolar.

Geliň catch blogynda bu çäklemeleriň görnüşlerini tutalyň:

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: 'önümde baha ýa-da sany ýok' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Önümiň JSON-y nädogry'); } else if (error.name == 'ProductCostError') { alert('Önümde baha ýa-da sany ýok'); } }

Size şuňa meňzeş JSON geler diýeliň:

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

Bu JSON-y düzümiň ýerine ýetirilmegi üçin umumy dogrulygyna barlaň, we düzümden soň, netijede massiw alnýandygyny, başga bir zadyň däldigini barlaň. Netijede massiw bolmasa - çäklemeleri atyň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et