DEDECMS JSON数据生成 DEDECMS JSON接口制作

所属分类: CMS教程 / dedecms 阅读数: 1658
收藏 0 赞 0 分享

json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php。

织梦本身是自带json标签的,调用方法:

{dede:json url='http://yoursite/json.php' cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}

这个标签调用例子在织梦手册里已经给我们提供了,url是一个远程json接口地址,这个接口文件json.php代码 里面,最后的返回必须是把数据通过json_encode($feeds)系统函数,进行json编码后,通过echo或print()函数来打印出来,这二点是必须的,然后,在前台我们就可以通过$.ajax()或$.getjson()来获取数据。织梦系统给我们提供了一个json类,在include/json.class.php文件里面,也就是是说,我们在对php文件转换json编码,就有了二种方法:

1.直接用php系统给我们提供的系统函数,json_encode(),我建立大家用这个,即简单又省事,既然,php系统给我们提供了,我们可以不用织梦系统提供的。

2.就是用织梦系统提供的,encode(),在使用前,首先引入json.class.php,即:

   require_once(DEDEINC.'/json.class.php');
   $json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);

   echo $json->encode($reval);

$reval这个变量是我们从数据库或其它地方得到的,一般是一个二维数组,例如下:

  Array (
  [0] => Array ( [id] => 95 [title] => 原图设计)
  [1] => Array ( [id] => 113 [title] => ssssssssssss)
  [2] => Array ( [id] => 111 [title] => hjhj )
  [3] => Array ( [id] => 110 [title] => ssssssssssss)
     )

经echo 以后,显示的内容如下所示。

  [
   {"id":"95","title":"\u539f\u521b"},
   {"id":"113","title":"ssssssssssss"},
   {"id":"111","title":"hjhj"},
   {"id":"110","title":"ssssssssssss"}
  ]

这是经过encode()或用json_encode()后,显示的内容。即,用中括号括起来的,几个json数据,这个数据回给请求的$.ajax()或$.getjson(),并由其对这个数据进行处理,显示我们相要的结果。

知道了原理,接下来就是详细实现方法,如下:

首先新建一个PHP文件,命名为json.php(也可以新建个文件夹命名为api,然后PHP命名为index.php,这样调用的时候就只需要http://你的域名/api这样的方式调用),用于作为被调用的API接口,代码如下:

<?php

$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);

?>

这里代码有进行了GBK转UTF8的操作,所以兼容GBK版的DEDECMS

调用方法:

{dede:json url='http://域名/json.php' cache=300}
[field:id/]-[field:title/]<br/>
{/dede:json}

把调用代码放到你你需要的地方就行

cache=300 缓存时间,0为不缓存

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

dedecsm模板中首页如何实现分页的三种方法比较分析

织梦dedecsm模板中首页如何实现分页的三种方法:用arclist标签+Ajax实现织梦首页分页/自由列表实现织梦首页分页等等,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

Dedecms图片加上Alt和Title等属性的修改方法

Dedecms发表资讯等等上传的图片全部没有title,虽然有这个选项却不生效,于是就研究了一下,发现只需要在相关文件添加一段代码即可。先告知大家方法,希望更多的人能够受益
收藏 0 赞 0 分享

DEDECMS 留言薄模块的使用方法

DEDECMS默认没有启用留言板的功能,所以要我们自己添加。不论是普通的企业站还是门户型的CMS,只要是需求明显的网站都应该要有留言板的互动模块
收藏 0 赞 0 分享

dedecms5.7 文章不能发布问题探讨及解决方法

dedecms的前台会员发布文章的功能,用ckeditor就有点问题了,会员上传图片,用ckeditor的话,非管理员账号点击上传图片按钮时会弹出:提示:需输入后台管理目录才能登录,真的是很郁闷啊,遇到此问题的朋友可以看看哦
收藏 0 赞 0 分享

解决织梦DEDE5.7 tags系列bug(图解步骤)

网上搜索了一下,很多都没什么太大的作用,最多只是给个简单的思想,而没自己实际解决掉织梦5.7 tags标签显示未审核的BUG,想修复这个bug就是找不到相关的文章,很是郁闷,感兴趣的朋友可以了解下本文或许对你有所帮助
收藏 0 赞 0 分享

dede:likearticle文章标签和tag标签关联错误解决方法

织梦5.7有个dede:likearticle标记是用来文章的关联,在使用过程中发现关联实在是不理想,接下来介绍把dede的搜索功能给替换到这个likearticle上应该会好很多,感兴趣的朋友可以了解下啊,或许对你有所帮助
收藏 0 赞 0 分享

dedecms图片相关问题—后台上传图片实现图片轮播

用dedecms套网站已经有很长时间了,但图片轮播都是手工修改代码.今天抽时间研究了一下在后台上传图片来实现图片轮播,这样可以提高工作效率解放了手工,感兴趣的朋友可以参考下本文,或许有意外的收获啊
收藏 0 赞 0 分享

织梦(dede)模板标签书写格式的规范和相关注意事项

一、织梦模板标签的书写格式以及注意事项:   1. 书写格式:     ① {dede:标签名 参数='值' 参数='值'} 底层模板 {/dede:标签名}     ② {dede:标签名 参数='值'/}
收藏 0 赞 0 分享

DedeEIMS后台栏目模板(含单独页模板)修改方法

栏目不能更改模板,难道只能用默认的?那不太可能吧,本文提供了详细的修改方法,感兴趣的你可不要错过了哈,希望接下来的内容可以帮助到你
收藏 0 赞 0 分享

dedecms标签调用大全 Dedecms5.7 使用教程

为方便做模板的朋友特整理的dedecms标签调用大全,大家可以直接ctrl+F搜索定位到需要的内容即可
收藏 0 赞 0 分享
查看更多