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

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

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

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

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

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

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

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

javascripttry {
  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 блогунда бул кошумчалардын түрлөрүн кармап алалы:

javascripttry {
  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('Продуктта баа же саны жок');
  }
}
Задание 1

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

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

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