php抓取网页json数据(PHP应用JSON形式数组和访问普通的对象属性(图))
优采云 发布时间: 2021-12-15 17:09php抓取网页json数据(PHP应用JSON形式数组和访问普通的对象属性(图))
PHP 一直受到程序开发人员的青睐,不仅因为它的高效,还因为它的灵活性和便利性。很多服务器返回的数据都是json格式的,而json数据的形式多种多样,这就要求我们的php程序能够处理不同形式的json数据。
PHP应用JSON的相关函数为: json_encode($PHP_string);
而使用PHP解析JSON的函数是: json_decode($json_string);
在学习这个文章之前,我们需要知道什么是json数据。
PHP 提供了特殊的函数来生成和解析 JSON 格式的数据。PHP解析出来的数据与原创Javascript数据含义相同,即Javascript对象解析为PHP对象,Javascript数组解析为PHP数组。我们使用php中的json_decode()函数来解析json数据。
JSON的形式有很多种,不同的形式被PHP解释后会有不同的形式。
JSON 格式一:
它完全以对象的形式存在。这种形式的数据在 Javascript 中也称为关联数组。与一般数组的区别在于可以通过字符串作为索引来访问(使用“[]”或“.”表示级别)
$json='{
"item1":{
"item11":{
"n":"chenling",
"m":"llll"
},&
quot;sex":"男",
"age":"25"
},
"item2":{
"item21":"ling",
"sex":"女",
"age":"24"
}
}';
$J=json_decode($json);
print_r($J);
输出数据为:
stdClass Object
(
[item1] => stdClass Object
(
[item11] => stdClass Object
(
[n] => chenling
[m] => llll
)
[sex] => 男
[age] => 25
)
[item2] => stdClass Object
(
[item21] => ling
[sex] => 女
[age] => 24
)
)
比如我想获取值为chenling的属性,应该这样访问: $J->item1->item11->n;
这将获得属性 n 的值:chenling。
其实这种访问方式类似于访问普通对象的属性,相当于访问一个3维数组。
JSON形式二:混合对象和数组
$json='{"item1":[{"name":[{"chen":<br />
"chenling","ling":"chenli"}],"sex":<br />
"男","age":"25"},{"name":"sun","sex":<br />
"女","age":"24"}]}';
$J=json_decode($json);
print_r($J);
输出数据为:
stdClass Object
(
[item1] => Array
(
[0] => stdClass Object
(
[name] => Array
(
[0] => stdClass Object
(
[chen] => chenling
[ling] => chenli
)
)
[sex] => 男
[age] => 25
)
[1] => stdClass Object
(
[name] => sun
[sex] => 女
[age] => 24
)
)
)
比如我想获取值为chenling的元素,应该这样访问: $J->item1[0]->name[0]->chen;
这将得到元素chen的值:chenling。
其实这个PHP应用JSON格式结合了对象和数组的访问方式,相当于访问了一个5维数组。
JSON形式三:完整数组形式
$json='[["item1","item11"],[
"n","chenling"],["m","llll"]]';
$J=json_decode($json);
print_r($J);
输出数据为:
Array
(
[0] => Array
(
[0] => item1
[1] => item11
)
[1] => Array
(
[0] => n
[1] => chenling
)
[2] => Array
(
[0] => m
[1] => llll
)
)
比如我想获取值为chenling的元素,就应该这样访问: $J[0][1];
这将获得元素值为chenling的元素。
但是,使用这种方法有一个缺点,就是不能使用字符串作为索引。您只能使用一个数字。这个问题可以用完整对象的形式来解决。其实这种访问方式就是数组的访问方式,相当于访问一个二维数组。.
PHP解析不同形式的JSON数据汇总:
从上面的 PHP 应用 JSON 例子可以看出,JSON 有点类似于 XML,而且结构化数据也可以在 PHP 和 Javascript 之间传递,使用起来非常方便。需要注意的是,每个属性和属性值都用引号“”括起来。
免责声明:如需转载请注明出处并保留原文链接: