JSON形式のデータを取り扱う

home

JSON形式のデータとは

業務で少し触れただけで、まだ自然に使えるようになっていない。自分の学習のためにも記しておく。
まず、JSONとは、JavaScript Object Notationのことで、Javascriptのオブジェクトのような表記法のこと。連想配列のようなイメージを持てばよい。JSオブジェクトの基本は公式に譲ろう。

JSON形式はキーと値のペアで考える。以下のような感じ。

{
	"name": "異世界攻略班",
	"gender": "male",
	"greeting":"Hello"
}

コロンの左側に書いたのがキーで右側に書いてあるのが値。
次のようにオブジェクトの中で、値にオブジェクトを取る場合もある。

{
	"name": "異世界攻略班",
        "profile":{
	"gender": "male",
	"greeting":"Hello"
         }
}

値が複数ある場合には、配列を取ることでもできる。

{
	"name":[ "異世界攻略班","ヒマイセ","HimaISe"],
        "profile":{
	"gender": "male",
	"greeting":"Hello"
         }
}

その複数の値だけがある場合には、値のみ並べる。

[ "異世界攻略班","ヒマイセ","HimaISe"]

値がオブジェクトだけの場合には、配列の中に{ }でオブジェクトを並べる。

[
	{
		"name": "異世界攻略班",
		"date": "2020-04"
	},
	{
		"name": "HimaIse",
		"date": "2020-05"
	}
]

なぜJSON形式を使うのか

一言でいうと、データの可読性を上げるためであるとのこと。とは言え、馴染みの無い人間からすると、可読性があるのかピンとこない。

あとは、先に見たように、配列とオブジェクトの構造がシンプルなため、軽量という点も上げられるようだ。

実際の使い方は

業務で一度、phpの要素のソートをするときに使った記憶がある。実際普段あまり使っていないので、そこまで使いこなせていない。

json形式だと、言語に依存しないというメリットもある。つまり、さまざまな言語で使える。例えば、phpの場合に、配列を用意し、それをjson_encode()を用いて、JSON形式にエンコードする。戻すときには、逆にjson_decode()してやればいい。

JSONデータをphpで使用した時には、データの一部を取り出して、それをforeachで回してやった。その後、検索条件に応じでソートさせてやったというわけだが、この辺りは感覚ではなく、実際に手を動かさないとやはり理解できない。paizaioでちょっといじってみる。

<?php

$array = ["aa","bb","CC"];

$json = json_encode( $array , JSON_PRETTY_PRINT ) ;

var_dump($json);
?>

//var_dumpの結果
string(32) "[
    "aa",
    "bb",
    "CC"
]"

phpの配列をエンコードさせてjson形式にした。配列なので、値だけが並んでる。
こいつをデコードしてやる。

<?php
$array = ["aa","bb","CC"];

$json = json_encode( $array , JSON_PRETTY_PRINT ) ;
$json2 = json_decode( $json , JSON_PRETTY_PRINT ) ;

var_dump($json);
var_dump($json2);
?>

//var_dumpの結果
string(32) "[
    "aa",
    "bb",
    "CC"
]"
array(3) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "bb"
  [2]=>
  string(2) "CC"
}

なるほど、ちゃんと戻ってる。
実際の業務ではこれを使ってデータを整形させていくのだが、まあ、これだけでも面白い。もっと自分でいじったら、更新する。

basic, javascript, php

Posted by himajinn