⊗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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау