Распарсить нетипизированный JSON в Angular можно с помощью встроенного метода JSON.parse()
, который преобразует строку JSON в JavaScript объекты. Однако, если JSON содержит нетипизированные данные, такие как различные типы значений (строки, числа, объекты), то простое использование JSON.parse()
может вызвать ошибку.
В таких случаях рекомендуется использовать метод JSON.parse()
с функцией-обработчиком (replacer), которая позволяет контролировать процесс преобразования. Обработчик может сгенерировать новое значение или модифицировать существующее.
Пример использования метода JSON.parse()
с обработчиком:
const jsonString = '{"name": "John", "age": 30, "gender": "male", "isActive": true}'; const parseJsonValue = (key: string, value: any) => { // Пример модификации значения по ключу "age" if (key === 'age') { return value * 2; } // Пример преобразования строки в дату if (typeof value === 'string' && /^d{4}-d{2}-d{2}$/.test(value)) { return new Date(value); } return value; }; const parsedJson = JSON.parse(jsonString, parseJsonValue); console.log(parsedJson); // Output: { name: 'John', age: 60, gender: 'male', isActive: true }
В данном примере функция parseJsonValue
принимает два аргумента - ключ и значение текущего свойства объекта JSON, и устанавливает собственные правила для преобразования. В данном случае значение свойства "age" умножается на 2, а строка вида "yyyy-mm-dd" преобразуется в объект типа Date
. В остальных случаях значение остается неизменным.
Таким образом, при рапарсивании нетипизированного JSON в Angular можно использовать JSON.parse()
с функцией-обработчиком для контроля над процессом преобразования и приведения данных к нужным типам.