【问题标题】:Help Decoding JSON帮助解码 JSON
【发布时间】:2011-07-04 18:21:25
【问题描述】:

我正在尝试从这段 json 中获取“screenshotUrls”字符串:

$request_url = 'http://itunes.apple.com/search?term=ibooks&country=us&entity=software&limit=1';
$json = file_get_contents($request_url);
$decode = json_decode($json, true);

echo $decode['results'][0]['screenshotUrls'];

但我只得到文本“数组”

我做错了什么?

【问题讨论】:

  • $decode['results'][0]['screenshotUrls'] 可能是一个数组而不是字符串。发送var_dump($decode); 看看它是什么样子的。
  • 看看var_dump()

标签: php arrays json decode


【解决方案1】:

试试

var_dump($decode['results'][0]['screenshotUrls']);

如果你得到 PHP 的 'Array' 输出,这意味着你正在尝试回显一个实际的数组(或字符串 'Array'...)。这意味着您需要获取特定的索引值。

【讨论】:

    【解决方案2】:

    由于$decode['results']['0']['screenshotUrls'] 是一个数组,如果你只想要一个字符串(比如说,用逗号分隔),你可以使用

    echo implode(",", $decode['results']['0']['screenshotUrls']);
    

    这将遍历数组,并返回所有 URL 的逗号分隔字符串。

    【讨论】:

      【解决方案3】:

      做一个var_dump($decode['results']['0']['screenshotUrls'])。您会发现['screenshotUrls'] 实际上是一个数组,包含一个或多个 URL(因此其名称中有复数 'urls')。

      【讨论】:

        【解决方案4】:

        到目前为止,您的代码没有任何问题,但 $decode['results'][0]['screenshotUrls'] 是一个包含所有屏幕截图 URL 的数组。要逐个检查,您需要执行以下操作:

        forearch ($decode['results'][0]['screenshotUrls'] as $url) {
            // Do stuff here
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-24
          • 1970-01-01
          相关资源
          最近更新 更多