TypeScriptでStringをJSONに変換する方法

TypeScriptとJSON.stringifyメソッド

TypeScriptでは、JavaScriptの組み込み関数であるJSON.stringify()を使用して、オブジェクトや値をJSON形式の文字列に変換することができます。以下にその基本的な使用方法を示します。

let obj = {
  name: "John",
  age: 30,
  city: "New York"
};

let jsonString = JSON.stringify(obj);

console.log(jsonString);
// 出力: {"name":"John","age":30,"city":"New York"}

この例では、objというオブジェクトをJSON.stringify()メソッドに渡して、その結果をjsonStringという変数に格納しています。そして、そのjsonStringをコンソールに出力することで、オブジェクトがJSON形式の文字列に変換されていることを確認しています。

JSON.stringify()メソッドは、オブジェクトだけでなく、配列やプリミティブ型の値もJSON形式の文字列に変換することができます。ただし、undefined、関数、シンボルは変換されずに無視されます。

また、JSON.stringify()メソッドは、オブジェクトに循環参照がある場合にはエラーをスローします。循環参照とは、オブジェクトが直接または間接的に自身を参照している状態のことを指します。このような場合、JSON.stringify()メソッドはそのオブジェクトを適切に文字列化することができません。

以上が、TypeScriptでのJSON.stringify()メソッドの基本的な使用方法とその注意点です。次のセクションでは、JSON.parse()メソッドについて詳しく説明します。

TypeScriptでのJSON.parseの使用

TypeScriptでは、JavaScriptの組み込み関数であるJSON.parse()を使用して、JSON形式の文字列をJavaScriptのオブジェクトに変換することができます。以下にその基本的な使用方法を示します。

let jsonString = '{"name":"John","age":30,"city":"New York"}';

let obj = JSON.parse(jsonString);

console.log(obj);
// 出力: { name: 'John', age: 30, city: 'New York' }

この例では、jsonStringというJSON形式の文字列をJSON.parse()メソッドに渡して、その結果をobjという変数に格納しています。そして、そのobjをコンソールに出力することで、JSON形式の文字列がJavaScriptのオブジェクトに変換されていることを確認しています。

JSON.parse()メソッドは、正しく形式化されたJSON形式の文字列を受け取る必要があります。もし形式が正しくない場合、JSON.parse()メソッドはエラーをスローします。そのため、JSON.parse()メソッドを使用する際には、適切なエラーハンドリングが必要です。

また、JSON.parse()メソッドは、第二引数としてリバイバ関数を受け取ることができます。このリバイバ関数は、パースの過程で変換される各プロパティに対して呼び出されます。リバイバ関数を使用することで、特定の値を変換したり、特定のプロパティを除外したりすることができます。

以上が、TypeScriptでのJSON.parse()メソッドの基本的な使用方法とその注意点です。次のセクションでは、toJSON()メソッドについて詳しく説明します。

TypeScriptでのtoJSONメソッドの使用

TypeScriptでは、オブジェクトがJSON.stringify()メソッドによって文字列化される際の挙動をカスタマイズするために、toJSON()メソッドを使用することができます。以下にその基本的な使用方法を示します。

class Person {
  constructor(public name: string, public age: number, public city: string) {}

  toJSON() {
    return {
      name: this.name,
      age: this.age,
      location: this.city
    };
  }
}

let john = new Person("John", 30, "New York");

let jsonString = JSON.stringify(john);

console.log(jsonString);
// 出力: {"name":"John","age":30,"location":"New York"}

この例では、PersonというクラスにtoJSON()メソッドを定義しています。このメソッドは、JSON.stringify()メソッドがオブジェクトを文字列化する際に自動的に呼び出され、その戻り値が文字列化されます。この例では、cityプロパティがlocationとして出力されるようになっています。

toJSON()メソッドを使用することで、オブジェクトの文字列化の挙動を細かく制御することができます。例えば、特定のプロパティを除外したり、プロパティ名を変更したり、プロパティの値を変換したりすることが可能です。

以上が、TypeScriptでのtoJSON()メソッドの基本的な使用方法とその注意点です。次のセクションでは、JSON変換のエラーハンドリングについて詳しく説明します。

TypeScriptでのJSON変換のエラーハンドリング

TypeScriptでは、JSON.stringify()JSON.parse()メソッドを使用する際に、エラーが発生する可能性があります。これらのエラーを適切にハンドリングすることは、アプリケーションの安定性と信頼性を保つために重要です。以下にその基本的な方法を示します。

JSON.stringifyのエラーハンドリング

JSON.stringify()メソッドは、オブジェクトに循環参照がある場合や、非サポートの値(関数、undefined, Symbolなど)が含まれている場合にエラーをスローします。これらのエラーをハンドリングするためには、try...catch文を使用します。

try {
  let obj = {
    name: "John",
    age: 30,
    city: "New York",
    sayHello: function() { console.log("Hello!"); } // 関数はJSONに変換できない
  };

  let jsonString = JSON.stringify(obj);
} catch (error) {
  console.error("JSON.stringify failed:", error);
}

JSON.parseのエラーハンドリング

JSON.parse()メソッドは、不正な形式のJSON文字列をパースしようとした場合にエラーをスローします。これらのエラーをハンドリングするためにも、try...catch文を使用します。

try {
  let jsonString = '{"name":"John","age":30,"city":"New York",}'; // 不正な形式のJSON文字列

  let obj = JSON.parse(jsonString);
} catch (error) {
  console.error("JSON.parse failed:", error);
}

以上が、TypeScriptでのJSON変換のエラーハンドリングの基本的な方法です。これらのエラーハンドリングを適切に行うことで、アプリケーションの安定性と信頼性を保つことができます。次のセクションでは、さらに詳細なJSONの操作について説明します。

コメントする