(随笔)PHP接口返回给小程序的数据格式
2018-01-22 15:57
253 查看
学习中刚刚涉及小程序数据交互,随笔记录一些问题。
关于小程序请求服务器数据时返回数据的格式与操作
服务端代码(PHP):
涉及到的MySQL类关键代码(简单写)
相关控制器关键代码(简单写)
public function getResumeByOpenid($openid){
//由于学习经历&工作经历可有多条,因此分表连接查询
$this->sql = "SELECT * FROM userInfo
JOIN userResume ON userInfo.openId = userResume.openId
WHERE userInfo.openId = '{$openid}'";
$this->getAll($this->sql);
//由于json_encode后的数据是对象数组,因此这里利用PHP内置空类stdclass来传递数据
$tempObj = new stdClass();
foreach ($this->result as $key => $value) {
$tempObj->$key = $value;
}
//传递后的对象
print_r($tempObj);
//传递后被解析为json格式的数据(关键,wx.request接收到的返回数据只可以是JSON,因此必须转为JSON) echo 'json:'.json_encode($tempObj,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
//var_dump($this->result);
return $this->result;
}
测试中浏览器输出结果
后端代码中最重要的是这几句
其中
如果只写成
输出结果的中文会直接是Unicode码,难以阅读和处理
解决方法是给其加上PHP5.4以后增加的几个常量参数:
输出结果就可自动转为中文,便于处理和阅读,就不需要像以前需要写JSON数据格式化。
关于小程序请求服务器数据时返回数据的格式与操作
服务端代码(PHP):
涉及到的MySQL类关键代码(简单写)
public function query($sql){ return mysqli_query($this->conn,$sql); } public function getAll($sql){ $queryResult = $this->query($sql); $row = mysqli_fetch_assoc($queryResult); return $this->result = $row; }
相关控制器关键代码(简单写)
public function getResumeByOpenid($openid){
//由于学习经历&工作经历可有多条,因此分表连接查询
$this->sql = "SELECT * FROM userInfo
JOIN userResume ON userInfo.openId = userResume.openId
WHERE userInfo.openId = '{$openid}'";
$this->getAll($this->sql);
//由于json_encode后的数据是对象数组,因此这里利用PHP内置空类stdclass来传递数据
$tempObj = new stdClass();
foreach ($this->result as $key => $value) {
$tempObj->$key = $value;
}
//传递后的对象
print_r($tempObj);
//传递后被解析为json格式的数据(关键,wx.request接收到的返回数据只可以是JSON,因此必须转为JSON) echo 'json:'.json_encode($tempObj,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
//var_dump($this->result);
return $this->result;
}
测试中浏览器输出结果
//print_r出的对象结果 stdClass Object ( [openId] => 1 [userName] => 钟梓栋 [sex] => 男 [age] => 21 [phone] => 18888888888 [email] => zhongzidong@163.com [location] => 广东中山 [workYears] => 1 [intention] => 产品经理 [skill] => 喝茶 [hobby] => 喝茶 [logo] => [comment] => 哈哈哈哈 [studyTime] => [studyLocation] => [workTime] => [workLocation] => ) //转换成JSON格式的结果 json:{ "openId": "1", "userName": "钟梓栋", "sex": "男", "age": "21", "phone": "18888888888", "email": "zhong@163.com", "location": "广东中山", "workYears": "1", "intention": "产品经理", "skill": "喝茶", "hobby": "喝茶", "logo": "", "comment": "哈哈哈哈", "studyTime": "", "studyLocation": "", "workTime": "", "workLocation": "" }
后端代码中最重要的是这几句
//由于json_encode后的数据是对象数组,因此这里利用PHP内置空类stdClass来传递数据 $tempObj = new stdClass(); foreach ($this->result as $key => $value) { $tempObj->$key = $value; }
//传递后被解析为json格式的数据(关键,wx.request接收到的返回数据只可以是JSON,因此必须转为JSON) echo 'json:'.json_encode($tempObj,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
其中
echo 'json:'.json_encode($tempObj,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
如果只写成
echo 'json:' . json_eccode($tempObj);
输出结果的中文会直接是Unicode码,难以阅读和处理
解决方法是给其加上PHP5.4以后增加的几个常量参数:
JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT
输出结果就可自动转为中文,便于处理和阅读,就不需要像以前需要写JSON数据格式化。
相关文章推荐
- 将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
- 接口规范,js处理json,php返回给ajax的数据格式
- php get接口,并在浏览器中以json格式返回查找到的数据
- 将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
- PHP对接APP的接口类,可返回json数据,xml数据
- SSM编写http接口返回JSON格式数据
- 从数据库得到数据导出指定格式的xml文件,上传到NC接口,返回回执到本地一个xml文件(接上篇补充)
- PHP接口返回多余异常数据,如波浪号~
- 用Jquery处理PHP返回的JSON格式数据的三种方法
- PHP 导入CSV格式数据,程序包含了跳过第一行表头方法
- JSON API免费接口 各种提供JSON格式数据返回服务网站的API接口
- Laravel修改登录和注册接口数据返回格式
- php执行数据库查询返回json格式数据
- WebService返回json格式数据供苹果或者安卓程序调用
- ajax调用返回php接口返回json数据
- IOS请求php返回的数据JSON数据无法正确解析 utf-8格式
- PHP如何返回json格式的数据
- 程序调试时用到的XML或者JSON数据接口(支持返回图片信息)
- ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理
- Asp.Net WebAPI配置接口返回数据类型为Json格式