本文目錄一覽:
- 1、如何在PHP中解析json
- 2、php如何接收js傳來的json對象
- 3、JSON PHP中,Json字符串反序列化成對象/數組的方法
- 4、淺談PHP中JSON數據操作
- 5、php如何返回json對象呢
- 6、如何在php中正確的使用json
如何在PHP中解析json
目前,JSON已經成為最流行的數據交換格式之一,各大網站的API幾乎都支持它。
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。
一、json_encode()
該函數主要用來將數組和對象,轉換為json格式。先看一個數組轉換的例子:
$arr = array (‘a’=1,’b’=2,’c’=3,’d’=4,’e’=5);
echo json_encode($arr);
結果為
{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}
由於json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。
二、索引數組和關聯數組
PHP支持兩種數組,一種是只保存”值”(value)的索引數組(indexed array),另一種是保存”名值對”(name/value)的關聯數組(associative array)。
由於javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對象格式。
比如,現在有一個索引數組
$arr = Array(‘one’, ‘two’, ‘three’);
echo json_encode($arr);
結果為:
[“one”,”two”,”three”]
三、類(class)的轉換
下面是一個PHP的類: class Foo { const ERROR_CODE = ‘404’; public $public_ex = ‘this is public’; private $private_ex = ‘this is private!’; protected $protected_ex = ‘this should be protected’; public function getErrorCode() { return self::ERROR_CODE; } }
現在,對這個類的實例進行json轉換:
$foo = new Foo;
$foo_json = json_encode($foo);
echo $foo_json;
輸出結果是
{“public_ex”:”this is public”}
可以看到,除了公開變量(public),其他東西(常量、私有變量、方法等等)都遺失了。
php如何接收js傳來的json對象
你無法傳json對象到服務端交互的,要傳的只是一個字符串(Json),是個字符串!
你發的代碼里是json的解析,沒有多大意義,你在php頁面這樣調試
var_dump($_REQUEST);//輸出所有數據,如果存在的話,你會看到那個參數是啥
另外,json格式,主要方便javascript解析的,而不是php擅長的內容,多數情況下,是PHP返回json數據給js.
php的數組操作函數有主要的兩個json_encode()與json_decode();
從你的代碼中,我不確定你用何種方式通信,ajax?
我看你用到了jQuery,那裏面有個ajax,方式類似這樣的:
$.ajax({
type: “post”, //method;can be get with post or request
url: “/mySever.php”,//php url
error: function(){alert(‘Error’);},
data: {
data1: name,
data2: age,
},
datatype:”json”,//json back
timeout: 5000,
success: function(msg)
{
//eval(msg);//parase here
}
});
return false;
}
JSON PHP中,Json字符串反序列化成對象/數組的方法
如下所示:
?php
//php反編碼解析json信息
//json_decode(json字符串);
$city
=
array(‘shandong’=’jinan’,’henan’=’zhengzhou’,’hebei’=’shijiazhuang’);
$jn_city
=
json_encode($city);
//反編碼json
$fan_city
=
json_decode($jn_city,false);//第二個參數false則返回object類型,false可以默認不寫
var_dump($fan_city);//object(stdClass)#1
(3)
{
[“shandong”]=
string(5)
“jinan”
[“henan”]=
string(9)
“zhengzhou”
[“hebei”]=
string(12)
“shijiazhuang”
}
echo
“br
/”;
$fan_city
=
json_decode($jn_city,true);//第二個參數true則返回array類型
var_dump($fan_city);//array(3)
{
[“shandong”]=
string(5)
“jinan”
[“henan”]=
string(9)
“zhengzhou”
[“hebei”]=
string(12)
“shijiazhuang”
}
手動寫的JSON字符串一定要用單引號才能成功反序列化成對象/數組:
?php
//json信息反編碼
//不同php版本,對「純json字符串」解析存在問題
//使用雙引號定義的json字符串反編碼操作變為null
//$jn
=
“{‘name’:’tom’,’age’:’20’,’addr’:’beijing’}”;
//$fan_jn
=
json_decode($jn,true);
//var_dump($fan_jn);//NULL
//使用單引號定義的json字符串反編碼操作會成功
$jn
=
‘{“name”:”tom”,”age”:”20″,”addr”:”beijing”}’;
$fan_jn
=
json_decode($jn,true);
var_dump($fan_jn);
以上這篇JSON
PHP中,Json字符串反序列化成對象/數組的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:C#實現JSON字符串序列化與反序列化的方法jquery序列化form表單使用ajax提交後處理返回的json數據js解析與序列化json數據(二)序列化探討Json序列化和反序列化方法解析Jquery
組合form元素為json格式,asp.net反序列化jQuery實現form表單元素序列化為json對象的方法淺析JSON序列化與反序列化JS實現json的序列化和反序列化功能示例js解析與序列化json數據(三)json的解析探討JavaScript實現的反序列化json字符串操作示例
淺談PHP中JSON數據操作
JSON,全稱是JavaScript
Object
Notation。它是基於JavaScript編程語言ECMA-262
3rd
Edition-December
1999標準的一種輕量級的數據交換格式,主要用於跟服務器進行交換數據。跟XML相類似,它獨立語言,在跨平台數據傳輸上有很大的優勢
新建文件json.php,先做encode操作:
//encode
//生成JSON格式數據
$arr
=
array(1,2,3,4,5,6,7,8,9,’Hello’,’PHP’);
echo
json_encode($arr);//json_encode:把一個對象轉換成json格式數據
得到的結果是[1,2,3,4,5,6,7,8,9,”Hello”,”PHP”]
再來做decode操作:
//decode
解碼
$jsonStr
=
‘{“h”:”Hello”,”w”:”World”,”0″:[3,2,1]}’;
$obj
=
json_decode($jsonStr);
echo
$obj-h;//使用成員訪問的方式就可以得到結果
知道簡單的使用方法後,可以嘗試着抓API數據,比如天氣…
以上所述就是本文的全部內容了,希望大家能夠喜歡。
php如何返回json對象呢
返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。
代碼解析
php返回需要用json_encode()方法來將需要轉換的字符串轉換成json編碼格式(注意:僅僅更換文件內容,而返回的文件依然為文本格式且編碼為gtk)
所以,這裡需要在php頭部聲明
header(‘Content-Type:text/json;charset=utf-8’);
拓展內容
json
JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。
json通常被作為配置文件,常見還有.ini
如何在php中正確的使用json
將json字符串解析成對象:
$json = ‘{“a”:1,”b”:2}’;
$obj = json_decode($json);
echo $obj-a;//1
echo $obj-b;//2
將對象轉為json字符串
echo json_encode(array(‘a’=1,’b’=2));//{“a”:1,”b”:2}
原創文章,作者:YKLUQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/329759.html