這兩個函數比較簡單,我這裡直接寫例子,但是有一點一定要註意,json數據只支持utf-8格式,GBK格式的數據轉換為json會報錯! json_encode()用法: <?php$data =array(‘name’=>’jianqingwang’,‘sex’=>’man’,‘title’=>’PH ...
這兩個函數比較簡單,我這裡直接寫例子,但是有一點一定要註意,json數據只支持utf-8格式,GBK格式的數據轉換為json會報錯!
json_encode()用法:
<?php
$data =array(
‘name’=>’jianqingwang’,
‘sex’=>’man’,
‘title’=>’PHPER’,
‘location’=>’XiaMen’
);$new_data =json_encode($data);
var_dump($data);
echo “<br><br>”;
var_dump($new_data);
得到的數據:
array(4) { [“name”]=> string(12) “jianqingwang” [“sex”]=> string(3) “man” [“title”]=> string(5) “PHPER” [“location”]=> string(6) “XiaMen” }
string(71) “{“name”:”jianqingwang”,”sex”:”man”,”title”:”PHPER”,”location”:”XiaMen”}”
json_decode()函數用來把json數組轉換為數組的,用法如下:
json的數據為:{“status”:1,”data”:{“prefix”:134,”province”:”北京”,”city”:”北京”,”isp”:”移動”,”code”:10,”zipcode”:100000,”types”:”中國移動 GSM”,”mobile”:”13488888888″},”message”:”success”}
用json_decode轉換後:
<?php
$data =file_get_contents('http://sj.apidata.cn/?mobile=13488888888');//獲取介面的json數據
$new_data =json_decode($data);
var_dump($new_data);
得到如下結果:
object(stdClass)#1 (3) { [“status”]=> int(1) [“data”]=> object(stdClass)#2 (8) { [“prefix”]=> int(134) [“province”]=> string(6) “北京” [“city”]=> string(6) “北京” [“isp”]=> string(6) “移動” [“code”]=> int(10) [“zipcode”]=> int(100000) [“types”]=> string(16) “中國移動 GSM” [“mobile”]=> string(11) “13488888888” } [“message”]=> string(7) “success” }
很顯然,我們轉換json數據後得到一個對象,我們要怎麼用它呢?
直接用
$new_data->data->isp//移動
$new_data->data->province//省份
這樣的形式訪問,為什麼這樣訪問,我們看下它的數據結構就知道了