// Я использую JSON.stringify() только чтобы получитьь строку // Это не часть демонстрации const jsonString = JSON.stringify([ { "name": "Mars", "cost": "$2.25", // мы хотим получить цену как число "tasty": "true", // а это должно быть логического типа }, { "name": "Jelly", "cost": "$0.20", "tasty": "true", }, { "name": "Birch", "cost": "$20", "tasty": "false", }, ]); // Второй параметр в JSON.parse() - функция, которой // передаются все пары ключ:значение const parsedData = JSON.parse(jsonString, (key, value) => { if (key === 'cost') return Number(value.replace('$', '')); if (value === 'true') return true; if (value === 'false') return false; return value; }); // Второй параметр в JSON.stringify() нам не инетересен, // третий параметр - количество пробелов, использующихся // в качестве отступов document.querySelector('#output').textContent = JSON.stringify(parsedData, null, 2);
<pre id="output"></pre>