php json解析 出現(xiàn)問題 Notice: Trying to get property of non-object in是設(shè)置錯(cuò)誤造成的,解決方法為:
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺(tái)小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了淮陽免費(fèi)建站歡迎大家使用!
1、以快遞100接口為例,返回的JSON數(shù)據(jù)。
2、建立函數(shù)。
3、PHP代碼 轉(zhuǎn)換成數(shù)組。
4、ecshop輸出方式:php文件。
$keys = '{result:0,events:[{event:6}]}'; $string = json_decode($key...
答:json_decode( ) 可以實(shí)現(xiàn)對(duì)?JSON?格式的字符串進(jìn)行編碼 你的Json字符串有問題 結(jié)果:array(2) { ["result"] = int(0) ["events"] = array(1) { [0] = array(1) { ["event"] = int(6) } }}
$a = json_decode('{"status":0,"total":1,"size":1,"contents":[{"title":"111","location":[113.11509,23.012777],"city":"\u4f5b\u5c71\u5e02","create_time":1385386545,"geotable_id":38432,"address":"\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02\u7985\u57ce\u533a\u6c7e\u6c5f\u5357\u8def8\u53f7","province":"\u5e7f\u4e1c\u7701","district":"\u7985\u57ce\u533a","map_id":"1","uid":42504634,"coord_type":3,"type":0,"distance":370,"weight":0}]}',true);
json_decode第二個(gè)參數(shù)true
解析出來就是array(4) { ["status"]= int(0) ["total"]= int(1) ["size"]= int(1) ["contents"]= array(1) { [0]= array(14) { ["title"]= string(3) "111" ["location"]= array(2) { [0]= float(113.11509) [1]= float(23.012777) } ["city"]= string(9) "佛山市" ["create_time"]= int(1385386545) ["geotable_id"]= int(38432) ["address"]= string(43) "廣東省佛山市禪城區(qū)汾江南路8號(hào)" ["province"]= string(9) "廣東省" ["district"]= string(9) "禪城區(qū)" ["map_id"]= string(1) "1" ["uid"]= int(42504634) ["coord_type"]= int(3) ["type"]= int(0) ["distance"]= int(370) ["weight"]= int(0) } } }
這樣的數(shù)組會(huì)取內(nèi)容了吧
用json_decode()將json字符串轉(zhuǎn)化成php數(shù)組,然后直接循環(huán)數(shù)組取出值即可。
?php
$content= file_get_contents('獲取json字符串的url');
$content = json_decode($content);//將json字符串轉(zhuǎn)化成php數(shù)組
foreach ($content as $key ) {//循環(huán)數(shù)組
echo 'li' . $key['city'] . '/li';
echo 'li' . $key['city_en'] . '/li';
echo 'li' . $key['date_y'] . '/li';
echo 'li' . $key['week'] . '/li';
}
js解析處理JSON格式的數(shù)據(jù),有多種方法.
(1)現(xiàn)在大多標(biāo)準(zhǔn)瀏覽器,都帶有對(duì)JSON的支持,可以直接通過js調(diào)用處理:
var?obj=JSON.parse(str);//str是php傳來的json數(shù)據(jù)
(2)使用了jquery等js庫,一般都會(huì)提供對(duì)json的支持,比如使用jQuery:
var?obj=jQuery.parseJSON(str);//str是php傳來的json數(shù)據(jù)
(3)可以使用json.js來增加瀏覽器的功能(一般針對(duì)性引用,在瀏覽器不支持json時(shí)加載json.js)
(4)簡(jiǎn)單粗暴的解決方法:
var?obj?=?eval?("("?+?txt?+?")");//txt是php傳來的json數(shù)據(jù)
但是使用eval不安全,而且需要是有效的json數(shù)據(jù).如果你能保證是安全且正確的數(shù)據(jù),可以這樣簡(jiǎn)單處理.
首先你需要使用對(duì)方約定方式獲取,然后考慮是否使用緩存,最后獲取到數(shù)據(jù)后使用json_decode函數(shù)解析成數(shù)組格式,接下來就是自己的邏輯代碼了。