A. 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);
["世界","你好"]
看吧,這才是我們想要的結果 :)
B. php 怎麼 字元串 轉 json對象
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php,裡面定義了個一個json字元串。
C. json文本文檔里的數據用php怎麼輸出
首先,把PHP數組中的數據寫入JSON文件。
<?php
// 生成一個PHP數組
$data = array();
$data['a'] = 'test'返瞎;
$data['b'] = 'bbb';
// 把PHP數組轉成JSON字元串
$json_string = json_encode($data);
// 寫入文件
file_put_contents('test.json', $json_string);
?>
然後,把JSON文件中的滑世耐數據讀取到PHP變數中。信春
<?php
// 從文件中讀取數據到PHP變數
$json_string = file_get_contents('test.json');
// 把JSON字元串轉成PHP數組
$data = json_decode($json_string, true);
// 顯示出來看看
var_mp($data);
?>
D. 怎樣使用php獲取復雜json數據並輸出
$obj_array = json_decode($result);
$r_array = object_array($obj_array);
print_r($r_array );
function object_array($obj_array){
if(is_object($obj_array)){
$obj_array = (array)$obj_array;
}
if(is_array($obj_array)){
foreach($obj_array as $key=>$value){
$obj_array[$key] = object_array($value);
}
}
return $obj_array;
}你看過後很簡單吧以後不會行含可以向我一樣經常到後盾人平台找找相關教材看看就會了模消,希望能檔碼笑幫到你,給個採納吧謝謝✧٩(ˊωˋ*)و✧
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)輸出的是一個數組
F. php 輸出json及顯示json中的中文漢字詳解及實例
php
輸出json及顯示json中的中文漢字
在php中,我們經常需要將數組輸出json,只需要使用json_encode函數處理一下數組即可,但有的時候數組裡面有中文,使用json_encode函數處理後中文字元被編碼成了Unicode,如何才能在json中顯示中文呢?請看下文。
首先介紹一下php輸出json格式:
一種最簡單的用法,就是把數組直接輸出為json,如下:
<?php
$arr
=
array('p1'=>'ni"hao','p2'=>2,'ch'=>'碼農你好!');
$json
=
json_encode($arr);
echo
$json;
?>
輸出的結果為:
{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}
這里要注意:
雙引號在json中會被自動編碼為\",這個很好理解,js中字元串中是不允許出來單引號、雙引號和反斜杠的。
中文字元被編碼成了Unicode
如果是寫介面,那直接這樣輸出就夠了,中文無需去做處理。等到了客戶端,再去把Unicode的中文轉成漢字即可。但如果要在伺服器端直接輸出漢字出來,那我們可以做如下處理。
<?php
$arr
=
array('p1'=>'nihao','p2'=>2,'ch'=>'碼農你好!');
$json
=
json_encode($arr);
echo
decodeUnicode($json);
function
decodeUnicode($str){
return
preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'return
mb_convert_encoding(pack("H*",
$matches[1]),
"UTF-8",
"UCS-2BE");'
),
$str);
}
?>
輸出:
{"p1":"ni\"hao","p2":2,"ch":"碼農你好!"}
這個操作很簡單,其實就是把輸出結果匹配一下,把Unicode還原成了漢字。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
G. PHP怎麼生成JSON列表啊
使用json_encode。假設需要轉換成json的數組為$arr,則
$json = json_encode($arr)
$json為轉換出來的json列表
H. 怎樣使用php獲取復雜json數據並輸出
$(document).ready(function(){$("#enter").click(function(){vartheuser=$("#theuser").val();if(theuser==''){alert("用戶名不能為空");returnfalse;}$.post('json.php',{'user':theuser},function(data){if(data.user!=""){$("#look").html(data.user);}else{//錯誤處理}});});});類似吧,沒大看明白你的要求.其實最好在php端輸出json的時候,加上些狀態欄位,例如:$result=array('asd','34234');//這是你想要的數據if($result){echojson_encode(array('code'=>1,'data'=>$result));}else{echojson_encode(array('code'=>0,'data'=>null));}這樣在前端的時候容易判斷些,直接根據code的狀態判斷請求的結果.w3school.com.cn/jquery/ajax_post.asp"target="_blank">.cn/jquery/ajax_post.asp
I. 請問在php中怎樣輸出這種格式的json
構造數組。
使用 json_encode()函數。傳入數組 返回json字元串。
J. PHP是怎麼返回json格式的數據
PHP中要返回json格式數據,直接輸出,然後退出或者結束即可。示例如下:
$arr=array('name'=>'chinawinxp','site'=>'com');
echojson_encode($arr);
exit;
//或者exit(json_encode($arr));