最近在玩微信二次开发,因为开发都是基于微信服务器的接口开发,每次和服务器的交互信息都需要用到特定json编码或xml格式,所以了解json_decode之后的数据取值方式就显得有价值。
一下是我的实例源码:
<?php
header('content-type:text/html;charset=utf-8');
include_once "Smarty.class.php";
$myMiniSmarty = new Smarty();
require_once 'get_token.php';
//require_once 'common.php';
$url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token={$access_token}";
$result = http_request($url);
$res = json_decode($result);
$result = array();
print_r($res);
res是jsondecode之后的数据,用printr(res)进行显示数据:
显示的数据即:
stdClass Object ( [menu] => stdClass Object ( [button] => Array ( [0] => stdClass Object ( [type] => view [name] => souga后台管理 [url] => http://xxxxxx.cn/MySmarty/index.php [sub_button] => Array ( ) ) ) ) )
那么我们要取出name,url,type要怎么取呢?
答案是:
$result['typee'] = $res->menu->button[0]->type;
$result['name'] = $res->menu->button[0]->name;
$result['url'] = $res->menu->button[0]->url;
至于原因,简单一点,object就用->,array就用[ ].其实还是基础知识哈哈。