Методы объекта JSON
Объект JSON , доступный во всех современных браузерах, имеет два очень полезных метода для обработки содержимого в формате JSON: parse и stringify . JSON parse() принимает строку JSON и преобразует ее в объект JavaScript. JSON.stringify() принимает объект JavaScript и преобразует его в строку JSON.
Пример:
const PersonObj = {
name: 'Михаил',
age: 27,
favoriteFood: 'Блины'
};
const ObjStr = JSON.stringify(PersonObj);
console.log(ObjStr);
// "{"name":"Михаил","age":27,"favoriteFood":"Блины"}"
console.log(JSON.parse(ObjStr));
// Object {name: "Михаил ", age: 27, favoriteFood: "Блины"}
И хотя эти методы обычно используются на объектах, их также можно использовать на массивах:
const array = ['мясо', 'мандарины', 'томаты'];
const array_str = JSON.stringify(array);
console.log(array_str);
// "["мясо","мандарины","томаты"]"
console.log(JSON.parse(array_str));
// ["мясо","мандарины","томаты"]
JSON.parse()
JSON.parse() может принимать второй аргумент, который может преобразовывать значения объекта до их возврата. Здесь значения объекта трансформируется в верхний регистр, если они являются строками.
const User = {
name: 'Виталий',
email: 'vitia\@myrusakov.com',
accountType: 'Pro'
};
const userStr = JSON.stringify(User);
JSON.parse(userStr, (key, value) => {
if (typeof value === 'string') {
return value.toUpperCase();
}
return value;
});
JSON.stringify()
JSON.stringify() может принимать два дополнительных аргумента, первый из которых является функцией замены, а второй - значением типа String или Number для использования в качестве пробела в возвращаемой строке.
Функция replacer может использоваться для того, чтобы отфильтровать значения, таким образом любое значение, возвращаемое как неопределенное (undefined), будет отсутствовать в возвращаемой строке:
const user = {
id: 003,
name: 'Борис',
email: 'boris\@site.com'
};
function replacer(key, value) {
console.log(typeof value);
if (key === 'email') {
return undefined;
}
return value;
}
const userStr = JSON.stringify(user, replacer);
// "{"id":003,"name":"Борис"}"
Пример с передачей третьего аргумента.
const user = {
name: 'Борис',
email: '[email protected]',
accountType: 'Pro'
}
const userStr = JSON.stringify(user, null, '...');
Результат:
"{
..."name": "Борис",
..."email": "[email protected]",
..."plan": "Pro"
}"
Таким образом, мы с Вами познакомились с двумя важными методами объекта JSON в JavaScript.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.