php转换成json数据格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php转换成json数据格式相关的知识,希望对你有一定的参考价值。

"programmers": [ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" ,
"firstName": "Jason", "lastName":"Hunter", "email": "bbbb" ,
"firstName": "Elliotte", "lastName":"Harold", "email": "cccc"
],
"authors": [
"firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" ,
"firstName": "Tad", "lastName": "Williams", "genre": "fantasy" ,
"firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction"
],
"musicians": [
"firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" ,
"firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano"
]
这样的数据格式是怎么样转换的
我从数据库查出来的数据直接转换的话是
[
"firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" ,
"firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano"
]
这样的!
因为是分开查询三个表 ,把它组成一条json数据,应该怎么去写

其实就是把这3个结果并成一个数组,再转就是了

例如,
$res1=mysql_query($sql1);

$res2=mysql_query($sql2);

$res3=mysql_query($sql3);

定义一个新的数组 $a = array();

将3个结果压入这个新的数组
array_push($a,$res1);

array_push($a,$res2);

array_push($a,$res3);

最后转义输出
echo json_encode($a);

LZ遇到问题不要气馁呀
参考技术A   json和php数组 格式的互相转换,参考如下:

  $php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据
  echo $php_json;
  $php_json = json_decode($php_json); //再把json格式的数据转换成php数组
  print_r($php_json);

  json数组
  $json = '["id":"22","name":"33","descn":"44"]'; //json格式的数组转换成 php的数组
  $arr = (Array)json_decode($json);
  echo $arr[0]->id; //用对象的方式访问
参考技术B php有现成的系统函数,json_encode和json_decode,一个是将数组变成json格式字符窜,一个是将json格式字符串变成PHP数组

PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决

$conn=connectDb();
$result=mysql_query('select * from users ORDER by id DESC ');
$datacount=mysql_num_rows($result);
for ($i=0;$i<$datacount;$i++)
$result_arr=mysql_fetch_array($result);
$json=array(
'id'=>$result_arr['id'],
'name'=>$result_arr['name'],
'$age'=>$result_arr['age']
);
$id=$result_arr['id'];
$name=$result_arr['name'];
$age=$result_arr['age'];
echo "<tr><td>$id</td><td>$name</td><td>$age</td><td><a href='edituser.php?id=$id'>修改</a><a href='deletuser.php?id=$id'>删除</a></td></tr>";

echo json_encode($json);

解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:

//urlencode处理
function json_array($obj) 
    foreach($obj as $key => $value) 
        if(is_array($obj[$key])) 
            $obj[$key] = json_array($obj[$key]);
        else
            $obj[$key] = urlencode($value);
        
    
    return $obj;

//urldecode解密转换为中文字符
function _json($obj) 
    return urldecode(json_encode(json_array($obj)));


echo _json($json);//$json为你要输出的json数组

此处递归调用是为了处理多维数组······

参考技术A 在PHP5.4, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json不要编码Unicode。echo json_encode($json, JSON_UNESCAPED_UNICODE);
找了篇文档可以参考下:http://blog.csdn.net/bjash/article/details/9834497

以上是关于php转换成json数据格式的主要内容,如果未能解决你的问题,请参考以下文章

php数组转换成json格式后汉字怎么就被解析成字母了啊

json格式怎么转换为excel格式

php,我想把数据库内容做成json格式,数据有换行符,去掉换行符输出后检测还是会换行。

如何在PHP中返回Json数据

JS和PHP之间以JSON格式传输

JSON数据格式中,中括号里的数据如何转换成JSON格式