<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>this+json</title>
<script type="text/javascript">
/* js:构造函数传参---------->能定义私有属性吗?类中怎么定义函数。有静态类吗?
function Person(name,age){
this.name= name;
this.age = age;
}
var p1 = new Person("张三",18);
var p2 = new Person("李四",20);
在构造器中定义形参,实例化对象时,通过构造函数传递数据。
java:
class person{
private String name;
private int age ;
public Person(){
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getAge(){
return age;
}
public void setName(int age){
this.age = age;
}
}
在主函数中调用;
Person p = new Person("张三",18);
Person 2 = new Person("李四",18);
*/
/* this 的深入理解
》》》》js中函数都是由对象调用起来的。《《《《《
this,谁调用这个函数,this就指向谁。
js中所有函数都是面向对象的。普通函数是window对象在调用它。
function start(){
alert("Hello World");
return true;
}
//结果是一样的。
alert(start());
alert(this.start());
alert(window.start());
*/
</script>
<script type="text/javascript">
/*
* json对象的使用。
一 : 什么是json,
对象是指属性的无序集合。
一个对象拥有若干个属性。
'集合'-->是 名/值 对的集合。
js中可以用{}来表示.
语法:(属性名建议用''/""-->安全性)
{'属性名1':属性值,'属性名2':属性值,...}
这样创建出来的对象叫做json对象。
二:创建json对象
var json ={'name':'张三','age':'28'};
alert(json.name);
三:使用json存储多个数据
function Person(name,age){
this.name= name;
this.age = age;
}
var p1 = new Person("张三",18);
var p2 = new Person("李四",20);
//使用json储存多个对象
var json={
"p1":p1,
"p2":p2
};
console.log(json);
console.log(json.p1.name);
----------------遍历--------------------------
for(arr in json){
for(son in json[arr]){
console.log(json[arr][son]);
}
}
//定义一个json数组
var arr=[{'name':'张三','age' :'18'},{'name':'李四','age' :'18'},{'name':'王五','age' :'18'}];
console.log(arr);
console.log(arr[2].name);
----------------遍历--------------------------
for(var i=0;i<arr.length;i++){
for(a in arr[i]){
console.log(arr[i][a]);
}
}
四:json究竟是什么?
var json ={'name':'张三','age':'28'};
alert(typeof json); ---------->object
alert(json.constructor);--------------->function Object(){[natice code]}
json是一个对象
json是一个object类下的一个对象
json对象和构造器对象有各自有什么特点和使用场景!
json对象:
简化了构造器的定义。
场景: 程序只需要一个这样的对象(工具类)
构造器对象:
简化了属性的定义
场景: 程序需要多个相同属性和方法的对象(用户类)
五:json中的成员函数
类中定义函数
function Person(name,age){
this.name= name;
this.age = age;
this.eat = function(){
alert(this.name+"吃饭");
}
}
var p1 = new Person("张三",18);
p1.eat();
java:
class Person{
public String name;
public int age;
public void eat(){
system.out.print(this.name+"正在吃饭");
}
}
json中定义函数
var json ={'name':'张三','age':'28','eat':function(){
alert(this.name+'吃饭');
}};
json.eat();
六:PHP中如何传递json
1:生成json
string json_encode($obj|$user);
A)从数组中生成json
$user = array('name'=>'张三','age'=>30);
$str = json_encode($user);
echo $str;
B)从对象中生成json
class Person{
public $name;
public $age;
}
$p1 =new Person();
$p1->name="lisi";
$p1->age = 18;
$str = json_encode($p1);
echo $str;
2:解析json
json_decode($jsonstr,$flag);//默认解析为对象
$flag true:解析为数组
false:解析为对象
$user = array('name'=>'张三','age'=>30);
$str = json_encode($user);
echo $str;
echo "<pre>";
var_dump(json_decode($str,true));
*/
</script>
</head>
<body>
</body>
</html>