JSON goodies
HTML
<pre id="output"></pre>
JavaScript
// Я использую 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);