phpjsonencode
Ⅰ php json_encode 變數如何轉換成數組
1json_decode(json數據, true); //得到一個數組
json_encode()函數和json_decode()是一對函數
作用剛好相反
一個是將數組轉換成json數據
一個是將json數據轉換成數組
Ⅱ php中json_encode參數為true是什麼意思
true返回值是數組,否則返回值為object。
Ⅲ php echo json_encode一個數組,為什麼不輸出任何東西,代碼如下
用var_mp函數看下json_encode的值,如果編碼異常,則返回值為false
false用echo列印是看不見的
Ⅳ PHP中json_encode中文亂碼問題
php 中使用 json_encode() 內置函數(php > 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json數據存儲格式
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
//結果
//{"a":1,"b":2,"c":3,"d":4,"e":5}
/*
下面看一款json_encode中文亂碼問題
解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來
*/
function arrayrecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayrecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 將數組轉換為json字元串(兼容中文)
* @param array $array 要轉換的數組
* @return string 轉換得到的json字元串
* @access public
*
*************************************************************/
function json($array) {
arrayrecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'name'=>'希亞',
'age'=>20
);
echo json($array);
//應用實例
$servname="localhost";
$sqlservname="root";
$sqlservpws="123456";
$sqlname="lock1";
$db=mysql教程_connect($servname,$sqlservname,$sqlservpws) or die("資料庫教程連接失敗");
mysql_select_db($sqlname,$db);
$sql = "select * from t_operater";
$result =mysql_query($sql);
$rows = mysql_num_rows($result);
while($obj = mysql_fetch_object($result))
{
$arr[] = $obj;
}
echo '({"total":"'.$rows.'","results":'.json_encode($arr).'})';
Ⅳ 如何讓php jsonencode 不轉義unicode
方法有兩種
1:php版本大於等於5.4,在使用json_encode的時候加入第二個參數JSON_UNESCAPED_UNICODE:如
//這樣使用中文可不會被轉義
$jsonStr=json_encode($data,JSON_UNESCAPED_UNICODE);
2:如果php版本小於5.4,可以使用這種方法,對unicode碼再進行解碼,解碼函數如下:
/**
*因php版本小於5.4
*decodeUnicode對中文編碼unicode進行反轉義為漢字
*@param$strjson字元串
*@return轉義後的json字元串
*/
functiondecodeUnicode($str)
{
returnpreg_replace_callback('/\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'returnmb_convert_encoding(pack("H*",$matches[1]),"UTF-8","UCS-2BE");'
),
$str);
}
//使用方法
$jsonStr=decodeUnicode(json_encode($data));
//或者單獨封裝一個函數
function_json_encode($data=array()){
returndecodeUnicode(json_encode($data));
}
Ⅵ PHP中json_encode返回的值無法被前端識別
你可以嘗試兩個辦法:
1- 前端把dataType: 'json'改成 dataType: 'jsonp'
2- 後端在 echo 前使用命令 header('Content-type:text/json') 可能還額外需要 header('char-set:utf-8');
Ⅶ php使用json_encode將資料庫里的整張表轉成json格式的問題
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,我們稱之為JavaScript對象表示法。使用JSON進行數據傳輸的優勢之一是JSON實際上就是JavaScript。
你試試下面兩個
1>
$arr = array(
0 => array("id" => 1, "name" => "abc")
);
echo json_encode($arr);
2>
$arr = array("id" => 1, "name" => "abc");
echo json_encode($arr);
Ⅷ 在PHP使用json_encode
Json
做為一種輕量級的數據交換格式,開始受到親睞,有與
XML
搶地盤的風頭。而讓人高興的是,php也把
json
序列化數據的功能內置成函數了,這讓想使用json的
PHPCoder
備感方便。
美中不足的是,json_encode
/
json_decode
系列函數只有在
php5.2
以上才有。這讓立志開發兼容性強的PHP系統的coder很頭痛。
幸好,已經有人把
json
的方法封裝成
php4.x
系列甚至更低的版本都可以執行的類了。這里要先謝謝先驅了。讓我們可以踩在巨人的肩膀上走向成功。
這里了解更多:http://code.itlearner.com/php/JSON-class.html
使用方法:
if(
function_exists("json_encode")
)
{
return
json_encode($phparr);
}
else
{
require_once
ROOT."include/json.class.php";
$json
=
new
Services_JSON;
return
$json->encode($phparr);
}
Ⅸ php 中 json_encode 只保留 value
循環將每個數組的值裝入一個新數組,然後將新數組轉換成json格式即可實現。示例如下:
<?php
header("Content-type:text/html;charset=utf-8;");
$str='[{"id":"1","數據1":"11","數據2":"12"},{"id":"2","數據1":"21","數據2":"22"},{"id":"3","數據1":"31","數據2":"32"}]';
$data=json_decode($str,true);
$arr=array();
foreach($dataas$key=>$item){
$arr[]=array_values($item);
}
print_r(json_encode($arr));
//[["1","11","12"],["2","21","22"],["3","31","32"]]
?>
Ⅹ 請求外部介面返回json數據,php json_encode解碼出現問題,有些數據無法顯示。
一般使用php發送請求,獲取返回的數據,進行解析;
<?php
$url="介面地址";
//發送請求獲取返回值,file_get_contents只支持get請求,post使用curl
$json = file_get_contents($url);
//把json數據轉化成數組
$data = json_decode($json,true);
//列印看看
print_r($data);
?>