JSON 文字列変換とパース

JSON.stringify() parse()

JSONとは、”JavaScript Object Notation”の略らしく、難しく云うと「テキストベースのデータフォーマット」です。少し簡単に云うとExcelにはCSVと云うテキストファイルが扱いやすいですが、JSONは最近流行りのPythonJavaScriptSwiftなどから扱いやすい形式のテキストデータと云うことになります。

JSONは様々なデータ構造を作れます。Excelのような縦横のグリッド形式の場合JSONフォーマットで表すと下記のように記述することも可能です。

CSV形式をJSONで表した例
CSV形式をJSONで表した例

JavaScriptの変数をJSON文字列に変換

JavaScriptで作成した変数をJSON文字列に変換したい場合はJSON.stringify()を使います

var array1 = []; //空の配列
array1.push({"NAME": "山田", "AGE":30}); //配列追記
array1.push({"NAME": "田中", "AGE":40}); //配列追記
var jsonString = JSON.stringify(array1); //JSON文字列変換

console.log(jsonString);
JSON.stringify()結果
JSON.stringify()結果

4行目の変数jsonStringには文字列「[{“NAME”:”山田”,”AGE”:30},{“NAME”:”田中”,”AGE”:40}]」が入りました。従って、JSON形式で他者にデータを渡す場合JSON.stringify()を利用します。

JavaScriptJSON文字列をパース

「JSONをパースする」や「パーサーを使う」などの言葉をよく耳にすると思います。他者からJSON形式の文字列を受け取る場合JSONをパースし利用します。

JavaScriptJSONをパースする場合JSON.parse()を使います。使い方は簡単でJSON形式の文字列をJSON.parse()の引数に入れるだけです。

let jsonString = "[{\"NAME\":\"山田\",\"AGE\":30},{\"NAME\":\"田中\",\"AGE\":40}]";
let array2 = JSON.parse(jsonString)

変数array2は下のようにデータが入りました。

JSON.parse()結果
JSON.parse()結果

JavaScript slice() 文字列の最後の文字を削除

JavaScript String slice()

JavaScriptString変数内の文字列の最後の文字を消す場合string内にslice()と云うメンバー関数が利用できます。

var s = "1,2,3,4,5,"

上記のような変数sがあった場合「最後のカンマだけを削除したい」ということがよくあります。その場合下記コード例のようにslice()を使って書けば最後の一文字を削除できます。

var s = "1,2,3,4,5,"
s = s.slice(0,-1)

変数sには、「1,2,3,4,5」が代入され最後のカンマは消えます。

文字列の先頭を削除

先頭の文字列を削除したい場合は、下記コード例のように記述します。

var s = "1,2,3,4,5,"
s = s.slice(1)

文字列範囲を取り出したい場合

slice()は文字列内の何文字目〜何文字目までを取り出すことも可能です。

var s = "1,2,3,4,5,"
s = s.slice(2,5)

上記のようにslice(2,5)とすると0から数えた2文字目から5文字目までがsに代入されます。

従いまして、s=「2,3」が入ります。

macOS Node.js nodebrewを使ったバージョンアップ

nodebrew install-binary

macOSで複数バージョンのNode.jsを使いたい場合「nodebrew」で管理すると簡単にNode.jsのバージョンを切り替えることが可能です。

brewのバージョンを確認しておく

brew -v

Homebrew 3.3.11」と返ってきたおそらく最新に近いバージョンだと思う

brew内でnode.jsのバージョンを管理できる「nodebrew」と云うパッケージがあるのでインストールする

brew install nodebrew

nodebrewがインストールされている場合は、そのnodebrewが古そうであればupgradeする

brew upgrade nodebrew

使いたいnode.jsのバージョンを確認

nodebrew ls-remote

ls-remoteで利用したいnode.jsのバージョンを確認する

nodebrew ls-remote 実行すると利用できるnodeバージョン一覧が表示される

v16.13.2があったのでそれをローカルmacOSに入れて使うことにする。

node.jsのバイナリをダウンロード

nodebrew install-binary v16.13.2

コマンドラインで「nodebrew install-binary バージョン」エンターするとnodebrewで指定したバージョンがインストールされる。

nodebrew list
先程install-binaryを実行した v16.13.2が入っている

この時点ではv16.13.2はダウンロードできたが利用できていない利用するには「nodebrew use」を実行する

nodebrew use v16.13.2

「nodebrew ls」を実行すると「current: v16.13.2」と表示されていればOK