Bean.php
class Bean {
private $ename = '';
private $fathername='';
function getEname() {
return $this->ename;
}
function getFathername() {
return $this->fathername;
}
function setEname($ename) {
$this->ename = $ename;
}
function setFathername($fathername) {
$this->fathername = $fathername;
}
}test.php
require 'Bean.php';
$finaldata = array();
$k = new Bean();
$k->setEname("Sahil Manchanda");
$k->setFathername("Pawan Kumar Manchadna");
$c = new Bean();
$c->setEname("Rahul Khurana");
$c->setFathername("Vijay Kumar Khurana");
$d = new Bean();
$d->setEname("Gourav Arora");
$d->setFathername("Mangat Rai Arora");
$finaldata[] = $k;
$finaldata[] = $c;
$finaldata[] = $d;
echo json_encode($finaldata);产出:
[{},{},{}]它不是将数组转换为json。我创建了一个Bean类,它包含两个参数,然后在其他文件中创建了bean类的三个对象,然后将其存储在一个数组中。当我试图在JOSN中对它进行编码时,它给了我三个空的json数组。请告诉我我做错了什么……
发布于 2015-02-17 13:28:55
使用像这样的getter来创建数组并返回,因为您将无法使用私有属性。
$finaldata[0]['name'] = $k->getEname();
$finaldata[0]['fathername'] = $k->getFathername();
$finaldata[1]['name'] = $c->getEname();
$finaldata[1]['fathername'] = $c->getFathername();
$finaldata[2]['name'] = $d->getEname();
$finaldata[2]['fathername'] = $d->getFathername();
json_encode($finaldata);发布于 2015-02-17 13:21:17
这些房产是私有的。您需要使用bean->getName方法将它们包含在json中。或者让他们公开
发布于 2015-02-17 13:22:01
标头只表示内容编码的内容。不一定能够从内容本身推断出内容的类型,也就是说,您不一定只看内容并知道如何处理它。这就是HTTP报头的目的,它们告诉接收者他们(据推测)处理的是哪种内容。
Content-type: application/json; charset=utf-8将内容指定为JSON格式,以UTF-8字符编码方式编码.指定编码对于JSON来说有点多余,因为默认的(仅?)JSON的编码是UTF-8。因此,在这种情况下,接收服务器显然很高兴知道它处理的是JSON,并且假设编码默认为UTF-8,这就是为什么它使用或不使用报头。
class Bean {
private $ename = '';
private $fathername='';
Public function getEname() {
return $this->ename;
}
Public function getFathername() {
return $this->fathername;
}
Public function setEname($ename) {
$this->ename = $ename;
}
Public function setFathername($fathername) {
$this->fathername = $fathername;
}
}https://stackoverflow.com/questions/28562439
复制相似问题