⊗jsSpExcJSE 149 of 294 menu

JavaScript'теги JSON менен кошумча ыргытуу мисалы

Айталы, сырткы дүйнөдөн бизге продукт менен JSON келет:

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

Сиз билесиз, JSON.parse методу JSON туура эмес болсо, кошумча ыргытат. Келгиле, бул кошумчаны кармап алалы:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // кошумчага кандайдыр бир жооп берүү }

Бирок, мындай болушу мүмкүн, JSON өзү туура болгону менен, бизге керектүү талааларды камтыбайт, мисалы, баасынын талаасы жок:

let json = '{"product": "apple", "amount": 5}'; // баасы жок

Келгиле, бул дагы кошумчалуу абал деп айталы жана ушундай учурда өзүбүздүн колдонуучунун кошумчасын ыргыталы:

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: 'продуктта баа же саны жок' }; } } catch (error) { // кошумчага кандайдыр бир жооп берүү }

Азыр catch блогу эки түрдөгү кошумчаларды алат: же JSON туура эмес, анда SyntaxError түрүндөгү кошумча болот, же JSON туура, бирок бизге керектүү талааларды камтыбайт, анда ProductCostError түрүндөгү кошумча болот.

Келгиле, catch блогунда бул кошумчалардын түрлөрүн кармап алалы:

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: 'продуктта баа же саны жок' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('Продукттун JSON'у туура эмес'); } else if (error.name == 'ProductCostError') { alert('Продуктта баа же саны жок'); } }

Айталы, сизге ушундай түрдөгү JSON келет:

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

Бул JSON'ду жалпы тууралыгы боюнча текшериңиз жандырууда, жана жандыруудан кийин текшериңиз, натыйжада массив алынабы же башка нерсе эмеспи. Эгерде натыйжада массив алынбаса - кошумча ыргытыңыз.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу