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);
?>