json是一个数据格式,那么先来了解下常用的数据类型
计算机语言大致分为:三种数据类型。
第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(number)。
第二种类型是序列(sequence),也就是若干个相关的数据按照一定的顺序并列在一起,又叫做数组或列表。
第三种类型是映射(mapping),也就是一个名/值对(Name/Value),即数据有一个名称,还有一个与之相对应的值,这又被称为散列(hash)或字典(dictionary)。
json的基本语法是?
知道了语法学习起来就快了。就思路清晰了
json(javascript object notation)的四个基本规则
并列的数据之间用逗号(“,”)分隔
映射用冒号(“:”)表示
并列数据的集合(数组)用方括号(“[ ]”)表示
映射的集合(对象)用大括号(“{}”)表示
为什么大家都喜欢用?
数据格式简单,易于读写,格式是压缩的,占用的宽带少
支持多种服务端语言,方便服务端解析
缺点?字符集必须是Unicode,语法必须遵循四个基本原则
php中json操作
$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咋样
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中引号只能用双引号(“ ”).