PHP-php里model对象有没有什么办法可以转成json格式输出?

发布于 2016-11-17 22:15:57 字数 612 浏览 1107 评论 1

$categorylist = $categorydao->findSubTree();
$cate_arr = array();
for($i=1;$i<count($categorylist);$i++){
$arr = array("id"=>$categorylist[$i]->getId(),"pid"=>$categorylist[$i]->getPid(),"locale"=>$categorylist[$i]->getLocale(),"image"=>$categorylist[$i]->getImage(),"name"=>$categorylist[$i]->getName(),"details"=>$categorylist[$i]->getDetails(),"csort"=>$categorylist[$i]->getCsort(),"nodestr"=>$categorylist[$i]->getNodestr());
$cate_arr[] = $arr;
}
echo json_encode($cate_arr);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2017-08-28 18:56:29

你这个for循环写的....每次都count一次..
foreach好很多....
可以定义一个getJson 的interface.假定Model是原来的Model类:

<?php
class Model{
//Model Code..
}
interface ObjtoJson{
public function getJson();
}
class NewModel extends Model,implements ObjJson{
//要输出为json格式的对象属性列表,可以配置,也可以调用setJsonAttrs()重新设置.
public $jsonAttrs = array();

public function setJsonAttrs($jsonAttrs){
//重新设置 jsonAttrs
}

public function __get($attr){
$method = 'get'.ucfrst($name);
if(method_exists($this, $method)){
return $this->$method();
}else{
throw new Exception("Method {$method} does not exist", 1);
}
}

public function getJson(){
if(empty($this->jsonAttrs)){
return false;
}
$jsonTmpArr = array();
foreach($this->jsonAttrs as $v){
//也可以把获取属性的方法在这里拼接,对应的删掉__get($name)
$jsonTmpArr[$v] = $this->$v;
}
unset($v);
return json_encode($jsonTmpArr);
}
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文