プログラミングBlog

JavaScript JSON

JSONとは?

JSONとはJavaScript Object Notationの略である。
直訳するとJavaScriptの表記法という意味
データ定義方法であり、他にもhtml,xml,csv....などがある。
最近ではAjaxにも使われ、異なるプログラミング間でのデータのやり取りをする際に用いられる。
JavaScript Object Notation - Wikipedia

扱えるデータ型

データ型 意味
string 文字列 "str"
number 数値 1
null オブジェクト null
boolean 論理値 true,false
object 連想配列 {}
object 配列 []

JSON形式のルール

{
    "str": "str",
    "num": 1,
    "null": null,
    "bool": true,
    "obj": {},
    "array": []
}

jsonファイルを読み込む

node.jsのfsモジュールを使用
上記の例を.jsonファイルに記述して読み込んでみる。

const fs = require('fs');

let json = fs.readFileSync('./sample.json');

バイナリデータとして読み込める。

<Buffer 7b 0d 0a 20 20 20 20 22 73 74 72 22 3a 20 22 73 74 72 22 2c 0d 0a 20 20 20 20 22 6e 75 6d 22 3a 20 31 2c 0d 0a 20 20 20 20 22 6e 75 6c 6c 22 3a 20 6e ... 59 more bytes>

このままだとわからないので.toString()で文字列に変換。

文字列に変換

json.toString();
{
    "str": "str",
    "num": 1,
    "null": null,
    "bool": true,
    "obj": {},
    "array": []
}

jsonをobjectに変換

JSON.parse(json)

keyのダブルクォーテーションがはずれてobject型に変換されていることがわかる。

{ str: 'str', num: 1, null: null, bool: true, obj: {}, array: [] }

objectをjsonに変換

JSON.stringify(obj, null, 4)

第3引数でインデントの操作ができる。 指定すると非常に見やすい。

{
    "str": "str",
    "num": 1,
    "null": null,
    "bool": true,
    "obj": {},
    "array": []
}