织梦json标签是用于调用某个远程连接的json接口,方便同远程站点之间进行通信来调取内容。这个标签可以很方便的对一些网站开放的API接口进行对接。需要注意的是,所传递的数据需要是UTF-8编码格式,否则可能会出现乱码。
标签语法
{dede:json url='http://www.gezhancn.com/json.php' cache=300}[field:id/]-[field:title/]{/dede:json}
- 标签参数
url='' //远程json接口地址
cache=300 //缓存时间,0为不缓存
- 标签示例
我们首先编写一个简单的服务器端API,将其存放在系统根目录/api下,由于系统是GB2312编码,所以服务端编写的时候我们进行了一些编码转换的处理,保证服务端访问的编码是UTF-8即可。
$cfg_NotPrintHead = false;header("Content-Type: text/html; charset=utf-8");include_once (dirname(__FILE__)."/../include/common.inc.php");error_reporting(E_ALL || ~E_NOTICE);require_once(DEDEINC.'/json.class.php');$reval = array();$dsql->SetQuery("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");$dsql->Execute('me');while ($row = $dsql->GetArray('me')) {$row['title'] = gb2utf8($row['title']);$reval[] = $row;}$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);echo $json->encode($reval);?>
下面我们就可以通过标签来进行访问。
{dede:json url='http://www.gezhancn.com/api/arcticle.php' cache=0}[field:id/]-[field:title/]{/dede:json}$row[] = $dsql->GetOne(“SELECT * FROM dede_archives WHERE id=88”);