Web開発やプログラミングの中で、「パースする」「パースできない」といった言葉を耳にしたことはありませんか?
この記事では『パース(parse)』について、以下の内容をわかりやすく解説します。ご参考になれば幸いです。
- パース(parse)とは?
- パース(parse)の使い方
- 例1:JSON文字列をJavaScriptのオブジェクトにパースする
- 例2:URLのクエリパラメータをJavaScriptのオブジェクトにパースする
- パースが重要な理由
- 「パース」と「シリアライズ」と「デシリアライズ」の違い
パース(parse)とは?
パース(parse)とは、「文字列などのデータを解析して、意味のある形に変換すること」を指します。
噛み砕いて言うと、こんな感じです。
- バラバラの情報を
- プログラムが扱いやすいように
- 整理整頓・変換すること
プログラムでは、外部から受け取るデータ(APIレスポンス、設定ファイル、ユーザーの入力など)は、たいてい「文字列」です。でも、文字列のままだと扱いにくいので、パースして「意味のある形(オブジェクトなど)」に変換することがよく行われます。
パース(parse)の使い方
例1:JSON文字列をJavaScriptのオブジェクトにパースする
以下にサンプルコードを示します。
const jsonStr = '{"name": "Taro", "age": 20}';
const obj = JSON.parse(jsonStr);
console.log(obj.name); // Taro
console.log(obj.age); // 20
上記のサンプルコードではJSON.parse()
を使ってJSON形式の文字列をJavaScriptで扱いやすいオブジェクトに変換しています。こうすることで、obj.name
のようにデータへ簡単にアクセスできるようになります。
例2:URLのクエリパラメータをJavaScriptのオブジェクトにパースする
以下にサンプルコードを示します。
const url = 'https://example.com/?category=books&sort=asc';
// クエリ部分だけを取り出す
const queryString = url.split('?')[1]; // category=books&sort=asc
// キーと値に分解してオブジェクトに変換
const params = {};
queryString.split('&').forEach((part) => {
const [key, value] = part.split('=');
params[key] = value;
});
console.log(params);
// { category: 'books', sort: 'asc' }
上記のサンプルコードではcategory=books&sort=asc
というURLのクエリ文字列をパースして、JavaScriptで扱いやすいオブジェクトに変換しています。
パースが重要な理由
多くのプログラムでは、以下に示すような「外部から入ってくるデータ」を扱います。
- ユーザーが入力したフォームの内容
- APIから返ってきたレスポンス
- 設定ファイル(例:JSONやYAML)
これらのデータの多くは文字列です。文字列のままだと処理が大変なので、パースして「意味のある形(オブジェクトなど)」に変換することが重要です。
「パース」と「シリアライズ」と「デシリアライズ」の違い
パースと一緒に覚えておきたい言葉に、シリアライズ(serialize)とデシリアライズ(deserialize)があります。
用語 | 意味 |
---|---|
シリアライズ(serialize) | オブジェクト → 文字列に変換 |
デシリアライズ(deserialize) | 文字列 → オブジェクトに変換(=パース) |
例えばJavaScriptでは、以下のように使われます。
JSON.stringify()
→ シリアライズJSON.parse()
→ デシリアライズ(パース)
本記事のまとめ
この記事ではIT用語の『パース(parse)』について、以下の内容を説明しました。
- パース(parse)とは:文字列などを解析して、意味のある形(構造)に変えること
- よくある用途:JSONの解析、URLパラメータの解析、HTML/XMLの解析など
- なぜ重要?:文字列のままでは処理しにくいから。プログラムで扱いやすい形に変換するために必要
- 関連語
- シリアライズ(serialize):オブジェクト → 文字列
- デシリアライズ(deserialize):文字列 → オブジェクト(=パース)
お読み頂きありがとうございました。