1、什么是json
答:所谓的json就是一种无序的数据集合,在JavaScript代码中可以通过一组花括号{}来表示这个集合。
2、为什么需要json
答:为了保存和编辑大批量数据
3、json的定义和使用
var json对象 = {属性:属性的值,…};
var json对象 = {‘属性’:属性的值,…};
var json对象 = {“属性”:属性的值,…};
1)json对象的定义
例1:定义一个json对象,用于保存一个人的信息
<!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> <script> var person = {name:’lisi’,age:55,address:’广东省广州市’}; var person = {‘name':’lisi’,’age':25,’address':’广东省广州市’}; var person = {“name”:”lisi”,”age”:50,”address”:”广东省广州市”}; </script> </body> </html>
json对象的调用
json对象.属性
<!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> <script> var person = {name:’lisi’,age:55,address:’广东省广州市’}; alert(person.name+’–‘+person.age+’–‘+person.address); </script> </body> </html>
使用json保存多个人的信息
在实际项目开发中,我们通常使用xml或json保存大批量数据。
定义格式如下:
var json对象 = [{属性:属性的值,…},{属性:属性的值,…},{属性:属性的值,…}];
示例代码:
<!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> <script> var person = [{ name:’lisi’, age:50, address:’广东省广州市’ },{ name:’zhangsan’, age:55, address:’广东省广州市’ },{ name:’zhangfei’, age:66, address:’广东省广州市’ }]; alert(person[2].name+’–‘+person[2].age+’–‘+person[2].address); </script> </body> </html>
json大批量数据遍历输出
<!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> <script> var person = [{ name:’lisi’, age:50, address:’广东省广州市’ },{ name:’zhangsan’, age:55, address:’广东省广州市’ },{ name:’zhangfei’, age:66, address:’广东省广州市’ }]; //1.使用for循环遍历json格式数据 for(var i=0;i<person.length;i++){ document.write(person[i].name+’—‘); document.write(person[i].age+’—‘); document.write(person[i].address); document.write(‘<hr/>’); } //2.使用for..in..循环遍历json格式数据 for(var i in person){ document.write(person[i].name+’—‘); document.write(person[i].age+’—‘); document.write(person[i].address); document.write(‘<hr/>’); } </script> </body> </html>
为json对象定义成员方法
<!DOCTYPE html> <html> <head> <meta charset=’utf-8′> <title></title> </head> <body> <script> var json = { name:’lisi’, age:22, //成员方法 speak:function(){ alert(this.name+’—‘+this.age); } }; json.speak(); </script> </body> </html>
php与json
1)把数组或对象转化为json数据格式
json_encode(数组或对象);
2)把json数据格式转化为数组或对象
json_decode(json对象,true) :把json对象转换为数组
json_decode(json对象,false) :把json对象转换为对象
① 把数组转化为json数据
<?php header(“Content-Type:text/html;charset=utf-8″); $arr1 = array(‘name’=>’lisi’, ‘age’=>’55’, ‘address’=>’广东省广州市’); echo ‘一维数组'; echo json_encode($arr1); echo “<hr/>”; $arr2 = array( array( ‘name’=>’lisi’, ‘age’=>’55’, ‘address’=>’广东省广州市’ ), array( ‘name’=>’zhangfei’, ‘age’=>’22’, ‘address’=>’广东省广州市’ ), array( ‘name’=>’wangwu’, ‘age’=>’15’, ‘address’=>’广东省广州市’ ) ); echo ‘二维数组'; echo json_encode($arr2);
② 把对象转化为json数据
<?php header(“Content-Type:text/html;charset=utf-8″); class Person{ public $name; public $age; public $address; } $person = new Person(); $person -> name = ‘lisi'; $person -> age = 25; $person -> address = ‘广东省广州市'; echo json_encode($person);
③ 把json数据转换为数组或对象
<?php header(“Content-Type:text/html;charset=utf-8″); class Person{ public $name; public $age; public $address; } $person = new Person(); $person -> name = ‘lisi'; $person -> age = 25; $person -> address = ‘广东省广州市'; //json_encode($person);是将对象转换成json格式的 $json = json_encode($person); //json转化为数组格式 $arr = json_decode($json,true); print_r($arr); echo ‘<hr/>'; //json转化成对象 $obj = json_decode($json); print_r($obj);