「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JSONとは何ですか?

JSONとは何ですか?

2024 年 11 月 4 日に公開
ブラウズ:588

What is JSON?

JSON の操作

開発者であれば、JSON (JavaScript Object Notation) について聞いたことがあるでしょう。どこにでもあるよ! API から構成ファイルに至るまで、JSON はデータ交換の頼りになる形式です。しかし、Node.js ではどのように操作できるのでしょうか?途中で役立つ実際の例をいくつか挙げながら、簡単に説明しましょう。


JSONとは何ですか?

簡単に言うと、JSON はデータを保存および交換するための形式です。読み書きが簡単なため、Web 開発で非常に人気があります。次のようになります:

{
  "name": "Alice",
  "age": 25,
  "city": "Wonderland"
}

これは基本的に、JavaScript オブジェクトのようなキーと値のペアのコレクションです。ただし、JSON は単なるテキストであることを覚えておいてください。コードで使用するには、オブジェクトに変換する必要があります。


Node.js での JSON の解析

まず、JSON 文字列を取得し、それを操作できるもの (JavaScript オブジェクト) に変換しましょう。これは、JSON.parse().

を使用して行います。

例: JSON の解析

const jsonString = '{"name": "Alice", "age": 25, "city": "Wonderland"}';
const jsonObject = JSON.parse(jsonString);

console.log(jsonObject.name); // Output: Alice

これは、JSON 文字列を取得して解析し、JavaScript オブジェクトに変換します。名前、年齢、都市などのプロパティにアクセスできるようになりました。


オブジェクトを JSON に変換する

データを JSON として送信する必要がある場合はどうすればよいですか?ここで JSON.stringify() が登場します。これは JavaScript オブジェクトを取得して、それを JSON 文字列に変換します。

例: オブジェクトを JSON に変換する

const user = {
  name: "Alice",
  age: 25,
  city: "Wonderland"
};

const jsonString = JSON.stringify(user);
console.log(jsonString);
// Output: {"name":"Alice","age":25,"city":"Wonderland"}

これは、API を構築する場合やデータを JSON として保存する場合に非常に便利です。


Node.js での JSON ファイルの読み取りと書き込み

JSON ファイルを使用する必要がありますか? Node.js では、fs (ファイル システム) モジュールを使用してそれを簡単に実行できます。手間をかけずに JSON ファイルの読み書きができます。

例: JSON ファイルの読み取り

const fs = require('fs');

fs.readFile('data.json', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  const jsonData = JSON.parse(data);
  console.log(jsonData);
});

ここでは、fs.readFile() を使用して JSON ファイルを読み取り、ファイルの内容を JavaScript オブジェクトに解析します。これで、データを使って何でもできるようになりました!

例: JSON ファイルへの書き込み

const fs = require('fs');

const user = {
  name: "Alice",
  age: 25,
  city: "Wonderland"
};

fs.writeFile('output.json', JSON.stringify(user, null, 2), (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Data saved to output.json');
});

この場合、JSON.stringify() はオブジェクトを適切なフォーマットされた JSON 文字列に変換し、fs.writeFile() はそれをファイルに保存します。簡単!


HTTP リクエストによる JSON の送受信

API を構築する場合、データの送受信には JSON が最適な形式です。 Express.js では、JSON データを簡単に送受信できます。

例: 応答で JSON を送信する

const express = require('express');
const app = express();

app.get('/user', (req, res) => {
  const user = { name: "Alice", age: 25, city: "Wonderland" };
  res.json(user);
});

app.listen(3000, () => console.log('Server running on port 3000'));

ここでは、HTTP GET リクエストへの応答として JSON オブジェクトを送信します。 res.json()!

を呼び出すだけです。

例: リクエストで JSON を受信する

app.use(express.json()); // Middleware to parse JSON body

app.post('/user', (req, res) => {
  const user = req.body;
  console.log(user); // Output: { name: "Alice", age: 25, city: "Wonderland" }
  res.send('User received!');
});

この例では、express.json() ミドルウェアを使用して、リクエスト本文から受信した JSON データを自動的に解析し、使用できる JavaScript オブジェクトに変換します。


JSON エラーの処理

不正な JSON データを取得した場合はどうすればよいですか?心配はいりません。Node.js にはエラー処理が組み込まれています。これらのエラーを検出する方法を見てみましょう。

例: 解析エラーの処理

const faultyJson = '{"name": "Alice", "age": 25'; // Oops, missing closing bracket

try {
  const jsonObj = JSON.parse(faultyJson);
} catch (error) {
  console.error('Failed to parse JSON:', error.message);
}

JSON が壊れている場合、JSON.parse() はエラーをスローします。この場合、try-catch ブロックはそれを適切に処理するのに役立ちます。


まとめ

Node.js でデータを操作する場合は、JSON について知っておく必要があります。 JSON データの解析、作成、読み取り、送信のいずれを行う場合でも、Node.js の組み込みメソッドを使用するとそれが簡単になります。 JSON.parse() を使用して文字列をオブジェクトに変換し、JSON.stringify() を使用してその逆を行い、Express.js を使用して API で JSON をスムーズに処理します。

JSON を快適に操作できるようになると、開発者ツールキットの中で最も価値のあるツールの 1 つが手に入ります!


参考文献:

  1. Node.js ドキュメント: JSON の操作
  2. Express.js ガイド: JSON リクエストの処理
  3. MDN Web ドキュメント: JSON.parse()

読んでいただきありがとうございます。コーディングを楽しんでください! ?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/hakimmohamed/what-is-json-3fi4?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3