5
2

More than 3 years have passed since last update.

Node.jsを勉強する⑤ - JSONファイルの書き込みと読み込み

Posted at

はじめに

前回は、 npmモジュールの使い方についてまとめました。
今回は、JSONファイルの作成と読み込みを記事にします。

教材

Udemy
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/course/the-complete-nodejs-developer-course-2/

データをJSONファイルに書き込む

まずは、app.jsファイルを作成して、Javascriptのオブジェクトを作成します。変数personを定義し、代入しておきましょう。

app.js

const person = {
     name: "Taro",
     age: 25
}

次に、このデータをJSONファイルに変換してみます。
変換には、JSON.stringify()というメソッドを使います。データは変数のpersonJSONに代入しておきます。

app.js

const person = {
     name: "Taro",
     age: 25
}

const personJSON = JSON.stringify(person)

データがJSON化されたので、これをファイルに書き出します。ファイルの操作を行うには、fsモジュールを使います。requireを用いて、fsモジュールを使えるようにします。

また。ファイルを作成するには、writeFileSync(ファイル名, データ)を使います。今回は、info.jsonという名前のファイルを作成します。

app.js
const fs = require('fs')

const person = {
     name: "Taro",
     age: 25
}

const personJSON = JSON.stringify(person)

fs.writeFileSync('info.json', personJSON)

以下のようなJSONファイルが作成されたら、完成です。

info.json
{"name":"Taro", age:25}

JSONファイルを読み込む

今度は作成したJSONファイルを読み込んで、consoleに出力してみます。
新しくread.jsを作って試してみます。readFileSync(ファイル名)を用いて、データを取り出します

read.js
const fs = require('fs')

//データを取りだす
const bufferData = fs.readFileSync('info.json')

ただし、この状態ではデータはバイト列なので、文字に変換する必要があります。

read.js
const fs = require('fs')

//データを取りだす
const bufferData = fs.readFileSync('info.json')
// データを文字列に変換
const dataJSON = bufferData.toString()

最後に、データをJavascriptのオブジェクトに変換する処理をしてから、consoleに出力します。

read.js
const fs = require('fs')

//データを取りだす
const bufferData = fs.readFileSync('info.json')

// データを文字列に変換
const dataJSON = bufferData.toString()

//JSONのデータをJavascriptのオブジェクトに
const data = JSON.parse(dataJSON)

console.log(data)

コードを実行し、ターミナルに、以下のように出力されれば、完成です。

ターミナル
node read.js

{ name: 'Taro', age: 25 }

また、データをJavascriptのオブジェクトに変換しているので、以下のように要素を取り出すこともできます。

read.js
const fs = require('fs')

//データを取りだす
const bufferData = fs.readFileSync('info.json')

// データを文字列に変換
const dataJSON = bufferData.toString()

//JSONのデータをJavascriptのオブジェクトに
const data = JSON.parse(dataJSON)

const name = data.name
const age = data.age
console.log(data.name + ' is '+ data.age + ' years old.')
ターミナル
node read.js

Taro is 25 years old.
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2