TypeScript:
JSONを活用する

方法:

JSONをTypeScriptオブジェクトに解析する

JSON文字列をTypeScriptオブジェクトに変換するには、JSON.parse()メソッドを使用します。これは、Webサーバーから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()メソッドを使用します。これは、データをWebサーバーに送信する必要があるときに特に便利です。

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-transformerAJV(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);

これらのツールとテクニックを利用することで、TypeScriptアプリケーションで効率的にJSONデータを扱うことができ、データの整合性を保ちながらTypeScriptの強力な型システムを活用できます。