TypeScript:
Робота з JSON

Як:

Парсинг JSON у об’єкт TypeScript

Щоб перетворити рядок JSON на об’єкт TypeScript, використовуйте метод JSON.parse(). Це корисно, коли отримуєте дані JSON від веб-сервера або читаєте файл JSON.

const jsonStr = '{"name": "John Doe", "age": 30}';
const obj = JSON.parse(jsonStr);

console.log(obj.name); // Вивід: John Doe

Перетворення об’єкта TypeScript на рядок JSON

Щоб перетворити об’єкт TypeScript на рядок JSON, використовуйте метод JSON.stringify(). Це особливо корисно, коли вам потрібно надіслати дані на веб-сервер.

const person = {
  name: "Jane Doe",
  age: 25,
};

const jsonStr = JSON.stringify(person);

console.log(jsonStr); // Вивід: {"name":"Jane Doe","age":25}

Робота з інтерфейсами

Ви можете визначити інтерфейси TypeScript для роботи з даними JSON безперебійно, забезпечуючи структуру ваших об’єктів.

interface Person {
  name: string;
  age: number;
}

const jsonStr = '{"name": "Alex", "age": 28}';
const person: Person = JSON.parse(jsonStr);

console.log(person.age); // Вивід: 28

Використання популярних сторонніх бібліотек

Для більш складних сценаріїв, таких як перевірка схеми або трансформація, ви можете вдатися до бібліотек, таких як class-transformer або AJV (Another JSON Schema Validator).

class-transformer

Ця бібліотека може перетворювати звичайні об’єкти на екземпляри класів і навпаки, що корисно для перевірки типів і маніпуляцій.

import "reflect-metadata";
import { plainToClass } from "class-transformer";
import { Person } from "./person";

const jsonStr = '{"name": "Mia", "age": 22}';
const person = plainToClass(Person, JSON.parse(jsonStr));

console.log(person instanceof Person); // Вивід: true
console.log(person.name); // Вивід: Mia

AJV

AJV - це бібліотека, яка дозволяє швидко перевіряти схеми JSON. Це означає, що ви можете перевіряти об’єкти JSON на відповідність попередньо визначеним схемам.

import Ajv from "ajv";

const ajv = new Ajv();

const schema = {
  type: "object",
  properties: {
    name: { type: "string" },
    age: { type: "number" },
  },
  required: ["name", "age"],
  additionalProperties: false,
};

const validate = ajv.compile(schema);
const valid = validate({ name: "Tom", age: 24 });

console.log(valid); // Вивід: true
if (!valid) console.log(validate.errors);

З цими інструментами та техніками ви можете ефективно обробляти дані JSON у ваших додатках TypeScript, забезпечуючи цілісність даних і використовуючи потужну систему типів TypeScript.