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中引号只能用双引号(“ ”).