JSON内で扱えるデータ型の種類

Read More

JSON内で扱えるデータ型の種類をはっきりさせるために調べた。

まず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








Category "PHP" の最新記事