json是一個數據格式,那麼先來了解下經常使用的數據類型javascript
計算機語言大體分爲:三種數據類型。php
第一種類型是標量(scalar),也就是一個單獨的字符串(string)或數字(number)。java
第二種類型是序列(sequence),也就是若干個相關的數據按照必定的順序並列在一塊兒,又叫作數組或列表。mysql
第三種類型是映射(mapping),也就是一個名/值對(Name/Value),即數據有一個名稱,還有一個與之相對應的值,這又被稱爲散列(hash)或字典(dictionary)。redis
json的基本語法是?sql
知道了語法學習起來就快了。就思路清晰了json
json(javascript object notation)的四個基本規則
數組
並列的數據之間用逗號(「,」)分隔
app
映射用冒號(「:」)表示學習
並列數據的集合(數組)用方括號(「[ ]」)表示
映射的集合(對象)用大括號(「{}」)表示
爲何你們都喜歡用?
數據格式簡單,易於讀寫,格式是壓縮的,佔用的寬帶少
支持多種服務端語言,方便服務端解析
缺點?字符集必須是Unicode,語法必須遵循四個基本原則
php中json操做
<?php $arr = array("name"=>"小明","age"=>12); echo $jsonStr = json_encode($arr);//{"name":"小明","age":12} $str = '{"address":"深圳","work":"code Monkey"}'; var_dump(json_decode($str)); /** object(stdClass)#1 (2) { ["address"]=> string(6) "深圳" ["work"]=> string(11) "code Monkey" } **/ var_dump(json_decode($str, true)); /* array(2) { ["address"]=> string(6) "深圳" ["work"]=> string(11) "code Monkey" } */
json_decode,json_encode json字符串解析默認轉成對象類型
當咱們操做對象轉json咋樣
<?php class phper{ public $mysql="必會"; protected $js="精通"; private $redis="擅長"; } $mine = new phper; var_dump(json_encode($mine)); /* string(24) "{"mysql":"\u5fc5\u4f1a"}" */
對象也是一個特殊的數組。對象轉json串,只輸出public公共的
那麼小結下:json轉數組,json轉對象,數組轉json,對象轉json,json_decode, json_encode
注意json中引號只能用雙引號(「 」).