PHP-php里model对象有没有什么办法可以转成json格式输出?
$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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你这个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);
}
}