Ⅰ 如何在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
Ⅱ php解析json並輸出到html頁面
用json_decode()將json字元串轉化成php數組,然後直接循環數組取出值即可。
<?php
$content= file_get_contents('獲取json字元串的url');
$content = json_decode($content);//將json字元串轉化成php數組
foreach ($content as $key ) {//循環數組
echo '<li>' . $key['city'] . '</li>';
echo '<li>' . $key['city_en'] . '</li>';
echo '<li>' . $key['date_y'] . '</li>';
echo '<li>' . $key['week'] . '</li>';
}
Ⅲ 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);
["世界","你好"]
看吧,這才是我們想要的結果 :)
Ⅳ PHP是怎麼返回json格式的數據
最常用的是將一個數組組織成json格式
$arr=array("err"=>0,"errMsg"=>"success","data"=>array("a"=>"b","c"=>1));
echojson_encode($arr);
返回json類似:
{"error":0,"errMsg":"success","data":{"a":"b","c":1}}
Ⅳ php連接資料庫後如何輸出轉換為json格式API,求詳細解答,
<?php
$link=mysql_connect('localhost','root','root');
mysql_select_db('test',$link);
$sql="select*frombooks";
$result=mysql_query($sql);
//將結果集轉為數組,每次取一行
while($row=mysql_fetch_assoc($result)){
$rows[]=$row;
}
echojson_encode($rows);
exit;
?>