Bliss.js предоставляет удобный и лаконичный API для работы с JSON-данными, позволяя эффективно управлять данными в формате JavaScript Object Notation, сериализовать и десериализовать объекты, а также выполнять сложные операции фильтрации и трансформации. Работа с JSON в Bliss.js строится вокруг нескольких ключевых функций и методов, обеспечивающих гибкость и читаемость кода.
Для преобразования JSON-строки в JavaScript-объект используется
функция Bliss.parseJSON. Она обеспечивает безопасный разбор
строки и обработку ошибок:
const jsonString = '{"name": "Alice", "age": 30, "skills": ["JS", "HTML", "CSS"]}';
const user = Bliss.parseJSON(jsonString);
console.log(user.name); // Alice
console.log(user.skills[1]); // HTML
Особенности Bliss.parseJSON:
null при некорректном JSON, вместо генерации
исключения.reviver, аналогичную стандартной JSON.parse,
для трансформации значений:const user = Bliss.parseJSON(jsonString, (key, value) => {
if (key === 'age') return value + 1;
return value;
});
console.log(user.age); // 31
Bliss.js упрощает преобразование объектов в JSON с помощью метода
Bliss.toJSON. Он поддерживает форматирование и
фильтрацию:
const user = {
name: "Alice",
age: 30,
password: "secret"
};
const safeJSON = Bliss.toJSON(user, ['name', 'age'], 2);
console.log(safeJSON);
/*
{
"name": "Alice",
"age": 30
}
*/
Ключевые параметры Bliss.toJSON:
Bliss.js предоставляет методы для удобного извлечения значений из
сложных JSON-структур. Метод Bliss.get позволяет безопасно
получать данные по пути:
const data = {
user: {
profile: {
name: "Bob",
contacts: {
email: "bob@example.com"
}
}
}
};
const email = Bliss.get(data, 'user.profile.contacts.email');
console.log(email); // bob@example.com
Если указанный путь отсутствует, возвращается undefined,
что предотвращает ошибки доступа к свойствам null или
undefined.
Изменение значений в сложных структурах также удобно через метод
Bliss.set. Он автоматически создаёт промежуточные объекты
при необходимости:
const data = {};
Bliss.set(data, 'user.profile.name', 'Charlie');
console.log(JSON.stringify(data, null, 2));
/*
{
"user": {
"profile": {
"name": "Charlie"
}
}
}
*/
Метод поддерживает глубокую запись и может перезаписывать существующие значения без дополнительной проверки.
Bliss.js расширяет работу с JSON возможностью фильтровать и изменять
данные с помощью Bliss.map и Bliss.filter. Они
работают как с массивами, так и с объектами:
const users = [
{name: "Alice", age: 30},
{name: "Bob", age: 25},
{name: "Charlie", age: 35}
];
const adults = Bliss.filter(users, u => u.age >= 30);
console.log(adults);
/*
[
{name: "Alice", age: 30},
{name: "Charlie", age: 35}
]
*/
const names = Bliss.map(users, u => u.name);
console.log(names); // ["Alice", "Bob", "Charlie"]
Эти методы позволяют выполнять сложные операции с JSON-данными, не
прибегая к многократному циклу for или дополнительным
проверкам.
Bliss.js включает функции проверки структуры JSON.
Bliss.validate проверяет объект по шаблону:
const user = {name: "Alice", age: 30};
const schema = {name: 'string', age: 'number'};
const valid = Bliss.validate(user, schema);
console.log(valid); // true
Поддерживаются вложенные схемы и массивы:
const data = {
users: [
{name: "Alice", age: 30},
{name: "Bob", age: 25}
]
};
const schema = {
users: [{name: 'string', age: 'number'}]
};
console.log(Bliss.validate(data, schema)); // true
Bliss.js предоставляет методы для загрузки JSON по сети с
автоматическим разбором. Bliss.loadJSON упрощает получение
данных через fetch:
Bliss.loadJSON('/api/users')
.then(users => {
console.log(users);
})
.catch(err => {
console.error('Ошибка загрузки JSON:', err);
});
Метод поддерживает:
get и
set предотвращают ошибки доступа к несуществующим
ключам.try/catch и ручные проверки
объектов.Bliss.js делает работу с JSON быстрым, безопасным и наглядным процессом, позволяя сосредоточиться на логике приложения, а не на обработке данных.