A. 關於php返回JSON的問題。
json 是一個標准來的...不用修改也不能修改
它要求你以:
* {
* "rows" : [{},{}], //數據集合
* "results" : 100, //記錄總數
* "hasError" : false, //是否存在錯誤
* "error" : "" // 僅在 hasError : true 時使用
* }
意思是以一個對象的形式返回...對象內容包括一個數據rows,包括一個結果總數result...等..你在PHP中,直接寫成類就可以了...
例子如下:
<?php
$obj=newstdclass();
$arr=array(1,1,1,1,1);
$obj->arr=$arr;
$obj->results=100;
$obj->hasError='false';
$obj->error='';
echojson_encode($obj);
?>
B. 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
0
C. php如何輸出中文json格式字元串
php如何輸出中文json格式字元串
如何對json格式的字元串進行轉換,php提供了兩個函數:
json_encode 對變數進行 JSON 編碼
json_decode 對 JSON 格式的字元串進行編碼
下面看個實例:
$arr = ['a', 'b', 'c'];echo json_encode($arr);
輸出為:
["a","b","c"]
但是,當我們在數組中放入中文的時候,就會出現問題:
$arr = [ '世界', '你好',
];echo json_encode($arr);
輸出的結果為:
["\u4e16\u754c","\u4f60\u597d"]
這個結果顯然不是我們想要的,但是為什麼出現這個呢?
因為當我們的值中包含中文時,php對他進行json編碼時底層會對中文進行unicode編碼,導致結果不可讀,那該怎麼解決呢?
方法一
可以利用 urlencode 和 urldecode 方法繞過這個轉碼為 unicode 的過程,先將中文欄位進行urlencode,然後json_encode,最後再用urldecode處理結果,便可以正常顯示中文。具體代碼如下:
$arr = [ '世界', '你好',
];echo urldecode(json_encode(array_map('urlencode', $arr)));
輸出結果為:
["世界","你好"]
方法二
自PHP5.4版本,官方就已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項後,就不會自動把中文編碼了。具體代碼如下:
$arr = [ '世界', '你好',
];echo json_encode($arr, JSON_UNESCAPED_UNICODE);
["世界","你好"]
看吧,這才是我們想要的結果 :)
D. 如何在PHP中返回Json數據
不對。
返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。
php返回需要用json_encode()方法來將需要轉換的字元串轉換成json編碼格式(注意:僅僅更換文件內容,而返回的文件依然為文本格式且編碼為gtk)
所以,這里需要在php頭部聲明
header('Content-Type:text/json;charset=utf-8');
JSON(JavaScriptObject Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於ECMAScript(歐洲計算機協會制定的js規范)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。
json通常被作為配置文件,常見還有.ini
E. php 循環輸出 json 數組
<?php
$Tdata='[{"A_Name":"a1","ICNo":"","A_ContNo":"","A_QQNo":""},{"A_Name":"a2","ICNo":"","A_ContNo":"","A_QQNo":""},{"A_Name":"a3","ICNo":"","A_ContNo":"","A_QQNo":""}]';
$arr=json_decode($Tdata,true);
//var_mp($arr);
echo stripcslashes ($arr[0][A_Name]);
?>
上面的方法可以列印輸出,json_decode($Tdata)輸出的結果是一個對應,而json_decode($Tdata,true)輸出的是一個數組