JSON内で扱えるデータ型の種類
Read More
JSON内で扱えるデータ型の種類をはっきりさせるために調べた。
まずJSON形式の文法は最初と最後を"{}"で括り、その中にKeyとValueを定義していく。
Keyはダブルクオート、あるいはシングルクオートで括る。
JSONのValueで指定できるデータ型は以下の通り。
■JSONのデータ型
KeyとValueの区切り文字は":"(コロン)。
KeyValueを複数定義する場合は","(カンマ)。
上記のコロンとカンマの前後に半角スペースがあっても問題ない。
オブジェクトおよび配列を除くすべての値はスカラー値。
--
以下で各データ型の記述例を示しておく。
またイメージをつかみやすくするためPHPのjson_decode()でデコードした結果をあわせて残しておく。
■JSONのInteger型とFloat型の例
■PHPのInteger型とFloat型のデコード例
--
■JSONのString型の例
■PHPのString型のデコード例
--
■JSONのObject型の例
■PHPのObject型のデコード例
--
■JSONのArray型の例
■PHPのArray型のデコード例
--
■JSONのBoolean型の例
■PHPのBoolean型のデコード例
--
■JSONのNULLの例
■PHPのNULLのデコード例
ちょっとややこしいのがObject型とArray型の違い。
受け取った側のPHP基準で考えた場合、
・Object型は単なる配列
・Array型は数値インデックスが振られて一階層深くなった配列
と理解すればわかりよい。
とりあえず自分はそのように理解している。
--
参考サイト
https://docs.oracle.com/cd/E82638_01/ADJSN/json-data.htm
まずJSON形式の文法は最初と最後を"{}"で括り、その中にKeyとValueを定義していく。
Keyはダブルクオート、あるいはシングルクオートで括る。
JSONのValueで指定できるデータ型は以下の通り。
■JSONのデータ型
・Integer 整数値 ・Float 小数値 ・String 文字列(""あるいは''で括る) ・Object オブジェクト({}で括る) ・Array 配列([]で括る) ・Boolean 真偽値であるtrue, false ・Null
KeyとValueの区切り文字は":"(コロン)。
KeyValueを複数定義する場合は","(カンマ)。
上記のコロンとカンマの前後に半角スペースがあっても問題ない。
オブジェクトおよび配列を除くすべての値はスカラー値。
--
以下で各データ型の記述例を示しておく。
またイメージをつかみやすくするためPHPのjson_decode()でデコードした結果をあわせて残しておく。
■JSONのInteger型とFloat型の例
{ "PONumber": 1600, "UnitPrice": 19.95 }
■PHPのInteger型とFloat型のデコード例
<?php array( 'PONumber' => 1600, 'UnitPrice'=> 19.95 ); ?>
--
■JSONのString型の例
{ "Reference": "ABULL-20140421", "Requestor": "Alexis Bull" }
■PHPのString型のデコード例
<?php array( 'Reference' => 'ABULL-20140421', 'Requestor' => 'Alexis Bull' ); ?>
--
■JSONのObject型の例
{ "Address": { "street": "200 Sporting Green", "city": "South San Francisco", "state": "CA", "zipCode" : 99236, "country" : "United States of America" } }
■PHPのObject型のデコード例
<?php array( 'Address' => array( 'street' => '200 Sporting Green', 'city' => 'South San Francisco', 'state' => 'CA', 'zipCode' => 99236, 'country' => 'United States of America' ) ); ?>
--
■JSONのArray型の例
{ "Phone": [ { "type": "Office", "number": "909-555-7307" }, { "type": "Mobile", "number": "415-555-1234" } ] }
■PHPのArray型のデコード例
<?php array( 'Phone' => array( 0 => array( 'type' => 'Office', 'number' => '909-555-7307' ), 1=> array( 'type' => 'Mobile', 'number' => '415-555-1234' ), ) ); ?>
--
■JSONのBoolean型の例
{ "AllowPartialShipment": false }
■PHPのBoolean型のデコード例
<?php array( 'AllowPartialShipment' => false ); ?>
--
■JSONのNULLの例
{ "Special Instructions": null }
■PHPのNULLのデコード例
<?php array( 'Special Instructions' => null ); ?>
ちょっとややこしいのがObject型とArray型の違い。
受け取った側のPHP基準で考えた場合、
・Object型は単なる配列
・Array型は数値インデックスが振られて一階層深くなった配列
と理解すればわかりよい。
とりあえず自分はそのように理解している。
--
参考サイト
https://docs.oracle.com/cd/E82638_01/ADJSN/json-data.htm