1、JSON概述
json指的是 JavaScript 对象表示法(JavaScript Object Notation),它是轻量级的文本数据交换格式。
json就是字符串,各种编程语言都可以解析或生成的字符串。
2、JSON语法格式
//键值都必须用双引号,中间以":"分割,键值对之间用",",最后一对键值后面不加","
//键:以字母数字下划线命名,不能以数字开头
//值:类型可以是一个字符串、数字,也可以是另一个合法json
{"name":"张三","sex":"女","age":18}
3、php操作json
//php索引数组
$arrNum = ["yiyi","erer","sansan"];
//php关联数组
$arrName = ['name'=>"张三",'age'=>18,'sex'=>"男"];
//php对象
class A{
public $product = "电脑";
public $count = 999;
public $price = 9999;
}
$obj = new A();
//生成json数据(序列化)
$arrNumJson = json_encode($arrNum);
$arrNameJson = json_encode($arrName);
$objJson = json_encode($obj);
//打印json数据
var_dump($arrNumJson); //转为数组形式json
var_dump($arrNameJson); //转为对象形式json
var_dump($objJson); //转为对象形式json
//解析json数据(反序列化)
var_dump(json_decode($arrNumJson)); //解析为php索引数组
var_dump(json_decode($arrNameJson)); //解析为php对象
var_dump(json_decode($objJson)); //解析为php对象
var_dump(json_decode($objJson,true)); //解析为php关联数组
结果如下:

4、js操作json数据
<script type="text/javascript">
//注意:js中没有关联数组
//声明js数组
var arr = ["张三",'男',18];
//声明js对象
var obj = {name:"李四",sex:"女",age:20};
//生成json数据(序列化)
var arrJson = JSON.stringify(arr);
var objJson = JSON.stringify(obj);
console.log(arrJson);
console.log(objJson);
//解析json数据(反序列化)
console.log(JSON.parse(arrJson)); //转为js数组
console.log(JSON.parse(objJson)); //转为js对象
</script>
结果如下:

网友评论