在php中将json数据解析为对象
指向在php中将json数据解析为对象,php,json,Php,Json,指向JSON结构的url 现在我正试图将此Json数据解析到我的对象: 这是我的班级: <?php class MappedEntity{ private $id; private $mp4Url; public function setId($id){ $this->id=$id; } public function setMp4Url($mp4Url){ $this->mp4Url=$mp
JSON
结构的url
现在我正试图将此Json
数据解析到我的对象:
这是我的班级:
<?php
class MappedEntity{
private $id;
private $mp4Url;
public function setId($id){
$this->id=$id;
}
public function setMp4Url($mp4Url){
$this->mp4Url=$mp4Url;
}
public function getId(){
return $id;
}
public function getMp4Url(){
return $mp4Url;
}
function __contruct($jsonData){
foreach($jsonData as $key => $val){
if(property_exists(__CLASS__,$key)){
$this->$key = $val;
}
}
}
}
?>
<?php
require_once 'mappedEntity.php';
$keyword = $_POST["keyword"];
$url="http://api.giphy.com/v1/gifs/search?q=".$keyword."&offset=100&limit=1&api_key=dc6zaTOxFJmzC";
$json = file_get_contents($url);
$file = json_decode($json);
$entity = new MappedEntity($file);
echo $entity->getId();
?>
好的,我更改了getter方法和构造函数,现在错误消失了
Notice: Undefined variable: id in C:\....\MappedEntity.php on line 14
Fatal error: Cannot access empty property in C:...\MappedEntity.php on line 14
我假设,我的构造函数内部的映射方法工作不正常?您在getID和getMp4URL函数上都缺少$this,它们应该是:
public function getId(){
return $this->id;
}
及
返回$this->id代码>1)您的api密钥在该字符串中。2)您正在调用\uuuu construct
,而不是\uu construct
3)您需要返回$this->id
而不是$id
返回$id
到返回$this->id
也用于返回$mp4Url
到返回$this->mp4Url代码>和构造函数?首先修复构造函数中的键入错误(它应该是_构造函数),您不需要更改方法体,它看起来还可以。除了此之外,仍然无法正确加载数据,因为构造函数代码也没有从结构的正确部分获取数据
public function getId(){
return $this->id;
}
public function getMp4Url(){
return $this->mp4Url;
}