Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中将json数据解析为对象_Php_Json - Fatal编程技术网

在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->id1)您的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;
}