php返回json数据函数实例


Posted in PHP onOctober 09, 2014

本文实例讲述了php返回json数据函数的用法,分享给大家供大家参考。具体方法如下:

json_encode()函数用法:

echo json_encode(array('a'=>'bbbb','c'=>'ddddd');

这样就会生成一个标准的json格式的数据

<?php
//需要执行的SQL语句
//单条
$sql="select id,name from tbl_user where id=1";
//多条数据
//$sql="select id,name from tbl_user";
//调用conn.php文件进行数据库操作 
require('Conn.php');
//提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来 
if($result) 
{
// $array=mysql_fetch_array($result,MYSQL_ASSOC);
 
 
 /*数据集
 $users=array();
 $i=0;
 while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
 echo $row['id'].'-----------'.$row['name'].'</br>';
 $users[$i]=$row;
 $i++;
 }
 echo json_encode(array('dataList'=>$users));
 */
 /*单条数据*/
 $row=mysql_fetch_row($result,MYSQL_ASSOC);
 
 echo json_encode(array('jsonObj'=>$row));
}
mysql_free_result($result);
//释放结果
mysql_close();
//关闭连接
?>

上面是数据库生成json数据
单条数据:{"jsonObj":{"id":"1","name":"lmw"}}
多条数据:{"dataList":[{"id":"1","name":"lmw"},{"id":"2","name":"xxj"},{"id":"3","name":"xxxj"}]}

现在很多情况下,我们需要程序返回一个Json格式的结果,比如:

{
"UserKeyGetResponse":
{"RequestName":"e99e6d63e8c712d7699f52978a","api_key_value":"41954dd9b1cb6a95802eab6810"},
"error_response":
{"code":"NO_ERROR","msg":"获取系统参数成功"}
}
可以将结果写成这样的数组形式:
$respon = array('UserKeyGetResponse' => array('RequestName' => $api_request_name, 'api_key_value' => $api_key_value),
'error_response' => array('code' => 'NO_ERROR', 'msg' => '获取系统参数成功'));

代码如下:

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--;
}
g:
$error_respon = array('code' => 'ERROR_MSG_MISS', 'msg' => '消息不存在');
echo JSON($array);

运行结果为:

{"code":"ERROR_MSG_MISS","msg":"消息不存在"}

客户端就可以解析这个结果了,当然错误码要用数字代替。
这样就好多了我们显示的直接是中文了,当然显示那个16进制的编码也是没有问题的。

PHP 相关文章推荐
PHP5 安装方法
Jan 15 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
PHP数组函数知识汇总
May 12 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
php常用的安全过滤函数集锦
Oct 09 #PHP
自定义session存储机制避免会话保持问题
Oct 08 #PHP
PHP定时任务延缓执行的实现
Oct 08 #PHP
在Win7 中为php扩展配置Xcache
Oct 08 #PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 #PHP
两千行代码的PHP学习笔记汇总
Oct 05 #PHP
PHP实现定时执行任务的方法
Oct 05 #PHP
You might like
JS 遮照层实现代码
2010/03/31 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
Django 前后台的数据传递的方法
2017/08/08 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
python中tab键是什么意思
2020/06/18 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
大学班长的职责
2014/01/27 职场文书
国培远程培训感言
2014/03/08 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
绿色环保演讲稿
2014/05/10 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
员工手册编写范本
2015/05/14 职场文书
可可西里观后感
2015/06/08 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
Python socket如何解析HTTP请求内容
2022/02/12 Python
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang