JavaScriptで引用符を削除してJSONオブジェクトに変換する方法
JavaScriptでは、余分な引用符(ダブルクォート)が付いたJSON形式の文字列を、正しいJSONオブジェクトに変換したいケースがあります。このような場合は、replace()メソッドとJSON.parse()メソッドを組み合わせることで簡単に解決できます。
基本的な処理の手順
- substring()で文字列の先頭と末尾にある余分な引用符を削除する
- replace()で二重になった引用符("")を通常の引用符(")に置き換える
- JSON.parse()で整形した文字列をJSONオブジェクトに変換する
サンプルコード
var studentDetails = `"{""name"": ""John"",""subjectName"":
""Introduction To JavaScript""}"`;
// 元の文字列を表示
console.log("元のオブジェクト=");
console.log(studentDetails);
// 先頭と末尾の引用符を削除
var removeFirstAndLast = studentDetails.substring(1, studentDetails.length - 1);
// 二重の引用符("")を単一の引用符(")に置き換え
var removeDoubleQuotes = removeFirstAndLast.replace(/""/gi, `"`);
console.log(removeDoubleQuotes);
// JSONオブジェクトに変換
var output = JSON.parse(removeDoubleQuotes);
console.log(output);
プログラムの実行方法
上記のプログラムを実行するには、Node.jsを使って次のコマンドを入力します。
node fileName.js
ここでは、ファイル名を「demo103.js」としています。
実行結果
上記のコードを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo103.js
元のオブジェクト=
"{""name"": ""John"",""subjectName"": ""Introduction To JavaScript""}"
{"name": "John","subjectName": "Introduction To JavaScript"}
{ name: 'John', subjectName: 'Introduction To JavaScript' }
コードの解説
- substring(1, studentDetails.length - 1): 文字列の先頭と末尾にある不要な引用符を取り除きます。
- replace(/""/gi, `"`): 正規表現を使って、エスケープされた二重引用符("")を通常の引用符(")に置き換えます。「g」フラグですべての出現箇所が対象になり、「i」フラグは大文字・小文字を区別しないことを意味します。
- JSON.parse(): 整形されたJSON文字列をJavaScriptのオブジェクトとして解析(パース)します。
この一連の処理により、不正な形式のJSON文字列でも正しいJSONオブジェクトとして扱えるようになります。外部APIから受け取ったレスポンスの整形など、実務でも役立つテクニックなので覚えておくと便利です。
-
【初心者向け】JavaScriptでJSONオブジェクトを作成する方法をサンプルコード付きで解説
JavaScriptでは、波括弧 { } を使ったオブジェクトリテラルを記述するだけで、JSON(JavaScript Object Notation)と同じ「キーと値のペア」構造を持つオブジェクトを簡単に作成できます。JSONは軽量なデータ交換フォーマットであり、API通信や設定ファイルなど、Web開発のさまざまな場面で利用されています。 以下は、JavaScriptでJSONオブジェクトを作成し、ボタンをクリックするとその内容を画面に表示するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="ja">
-
【JavaScript】2つの配列を1つのオブジェクトに変換する方法をわかりやすく解説
2つの配列を1つのJavaScriptオブジェクトに変換できる? はい、可能です。JavaScriptでは「キー」となる配列と「値」となる配列の2つを組み合わせて、1つのオブジェクトを作成できます。最も基本的な方法は、forEach()メソッドで片方の配列をループ処理しながら、もう片方の配列の対応する要素を値として代入していくやり方です。 以下に、実際に動作するサンプルコードを紹介します。 コード例 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name