json_decode:无法获得工作

时间:2014-08-13 18:24:23

标签: php arrays json

我对此失去了视力......我无法找到解决方案而且我一直在咆哮:P

我正在使用电影数据库获取有关电影的一些信息的JSON。这是我的代码:

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.themoviedb.org/3/movie/tt1327773/images?api_key=MY_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "Accept: application/json"
));

$response = curl_exec($ch);
curl_close($ch);

$posters = json_decode($response, true);

    foreach ($posters as $poster) {
    $locandina = $poster[0]->posters->file_path;
    echo $locandina;
    }

?>

当然print_r($response);有效,它会打印数组。什么是行不通的..我无法得到file_path值。即使我在Trying to get property of non-object参数中添加, true,我仍然会收到json_decode!这是阵列:

[id] => 132363
[backdrops] => Array (
    [0] => stdClass Object (
        [aspect_ratio] => 1.78
        [file_path] => /zZggWJSG18wPIOrZOgV5LI12LMi.jpg
        [height] => 1080
        [iso_639_1] =>
        [vote_average] => 5.3846153846154
        [vote_count] => 2
        [width] => 1920
    )
    [1] => stdClass Object (
        [aspect_ratio] => 1.78
        [file_path] => /wYuFRYTfx5rVjyhqdf8MXdQzKAo.jpg
        [height] => 1080
        [iso_639_1] =>
        [vote_average] => 5.3479853479854
        [vote_count] => 2
        [width] => 1920
    )
    ...
) 

1 个答案:

答案 0 :(得分:0)

要访问file_path,您需要此数组访问密钥:$ array [&#34; backdrops&#34;] [0] [&#34; file_path&#34;] - &gt;因为它包含在非关联数组的第一个位置作为&#34;的背景​​值&#34; ...检查出来(;

源代码:

// this is your input data
$json = '{"id":132363,"backdrops":[{"aspect_ratio":1.78,"file_path":"/zZggWJSG18wPIOrZOgV5LI12LMi.jpg","height":1080,"iso_639_1":null,"vote_average":5.38461538461539,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/wYuFRYTfx5rVjyhqdf8MXdQzKAo.jpg","height":1080,"iso_639_1":null,"vote_average":5.34798534798535,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/txiDfzC43eynxEchHfuZ1xTGfET.jpg","height":1080,"iso_639_1":null,"vote_average":5.34065934065934,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/56jBImSOTXDk77tJ15eDscmM1BO.jpg","height":720,"iso_639_1":null,"vote_average":5.33910533910534,"vote_count":3,"width":1280},{"aspect_ratio":1.78,"file_path":"/b2Ki6hHtAXPIx84mGWM5hkaUXYC.jpg","height":720,"iso_639_1":null,"vote_average":5.2967032967033,"vote_count":2,"width":1280},{"aspect_ratio":1.78,"file_path":"/v765i6Y5oHXKRtQmiTasbs59G6g.jpg","height":720,"iso_639_1":null,"vote_average":5.2967032967033,"vote_count":2,"width":1280},{"aspect_ratio":1.78,"file_path":"/9utSv4T39V70iM1tGPb16HItFZ2.jpg","height":1080,"iso_639_1":null,"vote_average":5.2967032967033,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/fnjBO2DKXOwHVMz4Tpjlf0DAm2F.jpg","height":1080,"iso_639_1":null,"vote_average":5.27472527472527,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/4Ns5u0zZvOvD6FmXCLMsokBF8tO.jpg","height":2160,"iso_639_1":null,"vote_average":5.26041666666667,"vote_count":1,"width":3840},{"aspect_ratio":1.78,"file_path":"/5ioO0UWgnSFO1ESTlci4tvtfO0w.jpg","height":2160,"iso_639_1":null,"vote_average":5.24553571428571,"vote_count":1,"width":3840},{"aspect_ratio":1.78,"file_path":"/6pEA2GiB4rxLLQqoqLKTmJ2bkmk.jpg","height":1080,"iso_639_1":null,"vote_average":5.24542124542125,"vote_count":2,"width":1920},{"aspect_ratio":1.78,"file_path":"/2OJ8l1qsk7KvVO4xdtQ7kDsoInE.jpg","height":2160,"iso_639_1":null,"vote_average":5.23809523809524,"vote_count":1,"width":3840},{"aspect_ratio":1.78,"file_path":"/fFsZzecwN2yTBOPqyQnpQS3lrEh.jpg","height":720,"iso_639_1":null,"vote_average":5.23088023088023,"vote_count":3,"width":1280}],"posters":[{"aspect_ratio":0.67,"file_path":"/a2dAFXwnrRu1kJ95Tp7fI0axyYv.jpg","height":2100,"id":"52d6fdf619c2952d2c048af0","iso_639_1":"de","vote_average":5.41847041847042,"vote_count":3,"width":1400},{"aspect_ratio":0.67,"file_path":"/hUjEYTN5NuK8kYRQxngS7itpBQC.jpg","height":2100,"id":"52b9a79e760ee302e50e0957","iso_639_1":"en","vote_average":5.38992408557626,"vote_count":6,"width":1400},{"aspect_ratio":0.71,"file_path":"/3WuXELbV6MKqqDuOSVcJFFCqiTn.jpg","height":2161,"id":"531fb9259251411f8500067e","iso_639_1":"cs","vote_average":5.3125,"vote_count":1,"width":1529},{"aspect_ratio":0.7,"file_path":"/gkq46U0Cd8zZVfXHsrpCe81xsSH.jpg","height":1500,"id":"53b1277d0e0a26598900797d","iso_639_1":"it","vote_average":5.3125,"vote_count":1,"width":1050},{"aspect_ratio":0.67,"file_path":"/jcyTM8XGonYaKdnvXDZ1hFyzQt6.jpg","height":1024,"id":"51c061f4760ee306480c6370","iso_639_1":"en","vote_average":5.28138528138528,"vote_count":3,"width":690},{"aspect_ratio":0.67,"file_path":"/qx7VAo0aJwH6t17YgGvHe9eP61m.jpg","height":2100,"id":"52be5e01760ee359630bcba1","iso_639_1":"pt","vote_average":5.27529761904762,"vote_count":1,"width":1400},{"aspect_ratio":0.75,"file_path":"/43qeAVpny8rVFW0hprgIFOByO3E.jpg","height":2060,"id":"5231f2ed19c2950c0d03d534","iso_639_1":"fr","vote_average":5.27417027417027,"vote_count":3,"width":1545},{"aspect_ratio":0.7,"file_path":"/b91OJaB9llSUZXc7C8Rtr56e3ws.jpg","height":1139,"id":"530da421c3a3685bf4002347","iso_639_1":"da","vote_average":5.26785714285714,"vote_count":1,"width":800},{"aspect_ratio":0.67,"file_path":"/gBLjprwQ4Re83qF3s5wR17pmQuI.jpg","height":1202,"id":"520b7e0119c2955c22062095","iso_639_1":"en","vote_average":5.26418786692759,"vote_count":10,"width":811},{"aspect_ratio":0.7,"file_path":"/jIFNhNpoZQja02uVudJr4dRzat9.jpg","height":2806,"id":"52b54ad9760ee34c2d0ced9a","iso_639_1":"ro","vote_average":5.26041666666667,"vote_count":1,"width":1956},{"aspect_ratio":0.75,"file_path":"/fR5D7pvKlvdkYf5pjg5v62QA9VY.jpg","height":3778,"id":"52315424760ee370e8179f24","iso_639_1":"fr","vote_average":5.24542124542125,"vote_count":2,"width":2833},{"aspect_ratio":0.71,"file_path":"/zU0FQydIMqusfC7dRD1gJojG07v.jpg","height":1980,"id":"52f23c4ec3a3687dfe0838ed","iso_639_1":"de","vote_average":5.24542124542125,"vote_count":2,"width":1400},{"aspect_ratio":0.67,"file_path":"/ahK6dhq7yVx1O6P8rVnSApurwOR.jpg","height":1200,"id":"52daccf3760ee36893077851","iso_639_1":"it","vote_average":5.17113095238095,"vote_count":1,"width":800},{"aspect_ratio":0.67,"file_path":"/xPwpuwNQVDh7PCQoyct0Fh4kdYn.jpg","height":2100,"id":"52555c11760ee31fbe0727d5","iso_639_1":"en","vote_average":5.14157014157014,"vote_count":11,"width":1400},{"aspect_ratio":0.67,"file_path":"/wLJpmGFzfn5YDCn3ZTO7WgZRpr4.jpg","height":1897,"id":"51ad01df19c295440007504c","iso_639_1":"en","vote_average":5.13227513227513,"vote_count":9,"width":1280},{"aspect_ratio":0.67,"file_path":"/nEx0vsj0WbXuuej0YJYXZaLtIwU.jpg","height":2100,"id":"52b9a79f760ee319b820b08b","iso_639_1":"en","vote_average":5.11204481792717,"vote_count":5,"width":1400},{"aspect_ratio":0.67,"file_path":"/5Iia0rSQXLPSz4Dnksn6OTgTFGX.jpg","height":1500,"id":"535b80d2c3a36830b00010f5","iso_639_1":"hu","vote_average":0.0,"vote_count":0,"width":1000},{"aspect_ratio":0.69,"file_path":"/mMlG2cFr3za21lKkbu2XpitwtGT.jpg","height":800,"id":"52b4058d760ee3576d02b06c","iso_639_1":"el","vote_average":0.0,"vote_count":0,"width":554},{"aspect_ratio":0.69,"file_path":"/cHux0aJqxxvMT6MgVnMaLMXxnwz.jpg","height":2882,"id":"52bdff9019c2955ab21272f5","iso_639_1":"pl","vote_average":0.0,"vote_count":0,"width":2000},{"aspect_ratio":0.68,"file_path":"/p14JxT0fzvbeOv9fCAI67x0wuQ5.jpg","height":1469,"id":"52be5e01760ee37070015c47","iso_639_1":"pt","vote_average":0.0,"vote_count":0,"width":1000},{"aspect_ratio":0.7,"file_path":"/heF6qrZDSrTbfFs0mRlj9imJJKN.jpg","height":1428,"id":"52f103f919c295253e05d5a2","iso_639_1":"es","vote_average":0.0,"vote_count":0,"width":1000},{"aspect_ratio":0.69,"file_path":"/rcA5RpSJI2cHSgnppvI3locslbY.jpg","height":2048,"id":"53a13c29c3a3687bbc001b22","iso_639_1":"tr","vote_average":0.0,"vote_count":0,"width":1421},{"aspect_ratio":0.7,"file_path":"/iB101OMznrVlyGq84f4jwg49VVF.jpg","height":966,"id":"53be4b3ac3a3687e59002922","iso_639_1":"ko","vote_average":0.0,"vote_count":0,"width":678}]}';

// convert it to an array enabling the second parameter (associative array)
$array = json_decode($json, true);

// this is the whole array
var_dump($array);

// this is the key you need to get
var_dump($array["backdrops"][0]["file_path"]);
// which is similar to (the internal pointer points to the first element):
$sub_array = current($array["backdrops"]);
var_dump($sub_array["file_path"]);