本文目錄一覽:
- 1、php 中 json_encode 只保留 value
- 2、php的json_encode如何讓中文不要編碼保持原始值?
- 3、PHP中json_encode中文亂碼問題
- 4、php中關於json_encode的問題
- 5、如何讓php jsonencode 不轉義unicode
- 6、PHP json_encode 變數如何轉換成數組?
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 ($data as $key=$item){
$arr[]=array_values($item);
}
print_r(json_encode($arr));
//[[“1″,”11″,”12”],[“2″,”21″,”22”],[“3″,”31″,”32”]]
?
php的json_encode如何讓中文不要編碼保持原始值?
json_encode只支持UTF8編碼的字元,保證在使用JSON處理的時候字元是以UTF8編碼的。具體我們可以把資料庫編碼和頁面編碼都改為UTF8。當然喜歡用gbk編碼的話,可以在進行JSON處理前,把字元轉為UTF8形式。濟南諾洋網路為您解答,希望可以幫到您。
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中關於json_encode的問題
是的,[“Apple”,”Banana”,”Pear”]是json的數組格式
需要在php上改動:
var_dump(json_encode(array(“Apple”, “Banana”, “Pear”), JSON_FORCE_OBJECT));
所選答案錯誤,有眼無珠
如何讓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 $str json字元串
* @return 轉義後的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);
}
//使用方法
$jsonStr = decodeUnicode(json_encode($data));
//或者單獨封裝一個函數
function _json_encode($data=array()){
return decodeUnicode(json_encode($data));
}
PHP json_encode 變數如何轉換成數組?
1json_decode(json數據, true); //得到一個數組
json_encode()函數和json_decode()是一對函數
作用剛好相反
一個是將數組轉換成json數據
一個是將json數據轉換成數組
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271337.html