❶ 請教php大神,如何提取一個json數據里的某值
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,回新建php文件,例如:答index.php,填充問題基礎代碼。
❷ 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_mp($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_mp($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_mp($fan_jn);//NULL
//使用單引號定義的json字元串反編碼操作會成功
$jn
=
'{"name":"tom","age":"20","addr":"beijing"}';
$fan_jn
=
json_decode($jn,true);
var_mp($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字元串操作示例
❸ json轉換php格式
print_r(json_decode($json,true)) 看看手冊就明白了
當第二個參數 為 TRUE 時,將返回 array 而非 object 。
❹ php如何讀取json中的數據
先使用json_decode()函數解析成數組,在用變數等於解析出來的數組
$test=json_decode("json數據");
輸出 echo $test->key;
❺ php 處理json字元串的問題
<?php
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
$jsonArr=json_decode($json,TRUE);
extract($jsonArr);//數組中將變數導入到以當前符號表
echo"a=$a;<br/>b=$b;<br/>c=$c;<br/>d=$d;<br/>e=$e;<br/>";
?>
另外也可以像遍歷數組一樣遍歷得回到的對象。
<?php
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
$jsonObj=json_decode($json);
foreach($jsonObjas$jk=>$jv){
$$jk=$jv;
}
echo"a=$a;<br/>b=$b;<br/>c=$c;<br/>d=$d;<br/>e=$e;<br/>";
//也可得到相答同的結果
?>
另外通過json_decode獲得的json對象,也可以通過"$jsonObj->a"這樣的方式獲取其值。
❻ PHP如何獲取JSON數據裡面0stdClass Object的值,新手求解謝謝!
json_decode( json數據, true)
這樣, 轉換出來的就是數組了, 和普通數組使用一樣一樣的
❼ tp框架,資料庫有一個欄位為json數據,現已用json_decode轉成對象數組了,如何輸出數組里邊的值
你好,提問者:
解決日期取年月日兩種辦法:
一種是在sql查詢資料庫的時候就把日期的格式轉換好;
1
DATE_FORMAT(start_time,'%Y-%m-%d') starttime
一種方法是在你獲取數據的時候轉換
1
SimpleDateFormat sdm = new java.text.SimpleDateFormat("yyyy-MM-dd");
你這樣吧,數據取出來後,用StringBuilder 拼一個json 傳到前台去吧!
給你個例子:
1
2
3
4
5
6
7
8
9
StringBuilder jsonStrAll = new StringBuilder("["); //定義一個StringBuilder
for(employee c : list){//循環你的list
jsonStrAll.append("{"+ "\""+"catid"+"\""+":"+"\""+c.getCatid()+"\""+","+"\""+"catname"+"\""+":"+"\""+c.getCatname()+",isLeaf:true,expanded:false,"+"loaded:true},"); //把你要拼接的欄位放進去
}
String str = jsonStrAll.substring(0, jsonStrAll.length()-1); //把最後的,(逗號)截取掉
if(!"".equals(str)){
str = str+"]"; //加上結尾,json就拼接完了
}
//最後return str ; 就可以了!
❽ 返回的json數據為什麼是stdclass object
[php] view plain
$test=Array
(
[0] => stdClass Object
(
[tags] => 最快的車,Bloodhound,SSC
[id] => 48326888
11
從網上查到的方法是 用get_object_vars 把類類型轉換成數組 然後在用foreach 遍歷即可
$array = get_object_vars($test);
$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';
首先要用 json_decode 對 JSON 格式的字元串進行編碼,
$students = json_decode($json);
直接在PHP文件用$students :
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年齡:".$students[$i]['age']."專業:".$students[$i]['subject']."<br/>"; }
則報錯如下:
Fatal error: Cannot use objectof type stdClass as array in D:\wamp\www\test.phpon line 18
這時候列印一下 $students :
var_mp($students);
會輸出:
array(2) {
[0]=>
object(stdClass)#2 (4) {
["id"]=> string(1)"1"
["name"]=> string(9)"張雪梅"
["age"]=> string(2)"27"
object(stdClass)#3 (4) {
["subject"]=>string(24) "計算機科學與技術"
}
[1]=>
["id"]=> string(1)"2"
["name"]=> string(9)"張沛霖"
["age"]=> string(2)"21"
["subject"]=> string(12) "軟體工程"
}
}
可見,返回的結果是 object 而非 array。應以對象形式訪問:
foreach($students as $obj){ echo "姓名:".$obj->name."年齡:".$obj->age."專業:".$obj->subject."<br/>"; }
輸出結果為:
姓名:張雪梅 年齡:27 專業:計算機科學與技術 姓名:張沛霖 年齡:21 專業:軟體工程
mixedjson_decode ( string$json [, bool$assoc ] )
說明:接受一個 JSON 格式的字元串並且把它轉換為 PHP 變數。
json_decode 可接收兩個參數:
json:待解碼的jsonstring 格式的字元串。
assoc:當該參數為 TRUE 時,將返回 array 而非 object 。
$students = json_decode($json,true);
這時列印一下 $students :
var_mp($students);
輸出:
array(2) {
[0]=>
array(4) {
["id"]=> string(1)"1"
["name"]=> string(9)"張雪梅"
["age"]=> string(2)"27"
["subject"]=>string(24) "計算機科學與技術"
}
[1]=>
array(4) {
["id"]=> string(1)"2"
["name"]=> string(9)"張沛霖"
["age"]=> string(2)"21"
["subject"]=>string(12) "軟體工程"
}
}
這時,$students 就是個數組了,可以直接用:
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']."年齡:".$students[$i]['age']."專業:".$students[$i]['subject']."<br/>";}
輸出結果為:
姓名:張雪梅 年齡:27 專業:計算機科學與技術 姓名:張沛霖 年齡:21 專業:軟體工程
總結:
在PHP代碼中處理JSON 格式的字元串的兩種方法:
方法一:
$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';
$students= json_decode($json);//得到的是 object
foreach($studentsas $obj){
echo "姓名:".$obj->name." 年 齡:".$obj->age." 專 業:".$obj->subject."<br />";}
方法二:
$json= '[{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}]';
$students= json_decode($json, true);//得到的是 array
for($i=0;$i<count($students);$i++){ echo "姓名:".$students[$i]['name']." 年 齡:".$students[$i]['age']." 專 業:".$students[$i]['subject']."<br />";}
❾ 阿里雲api怎麼用php獲取json
你下載的網站,不支持用通用的下載軟體下載,必須用IE的目標另存為下載或網站指定的軟體下載。由於你使用了迅雷、快車這類通用下載軟體,所以網站的伺服器未給你發送正確的下載地址,當然就無法下載了。PHP文件是腳本文件,光有它是沒用的。
建議你去後盾人那找找答案,我還聽說他們在搞什麼實訓班培訓的活動