从 JSON 中解析特定部分
Parse specific part out of JSON
我目前在德国电影相关网站上工作。
由于我是编码新手,所以我买了一个脚本来解析来自 themoviedb 的电影数据。
这是正在解析的完整 JSON 响应:
对脚本的一点研究表明标准 release_date 被解析为:
public function getReleaseDate()
{
return (array_key_exists('release_date', $this->raw) ? $this->raw['release_date'] : $this->raw['first_air_date']);
}
这很好用,给我“2017-04-25”。但在 JSON 响应中,我想过滤掉特定于地区的发布日期。我特别想要这部分的 "release_date":
{
certification: "",
iso_3166_1: "DE",
primary: false,
release_date: "2017-04-27"
},
TL;DR:我需要一个函数来解析 JSON 响应,我只收到德国版本(“2017-04-27”)的 "release_date"。
这是我尝试过的:
public function getReleaseDateLocalized()
{
$date = '';
if (isset($this->raw['releases']['countries']))
{
$dates = $this->raw['releases']['countries'];
}
elseif(isset($this->raw['release_date']))
{
return $this->raw['release_date'];
}
else
{
return '0000-00-00';
}
foreach($this->raw[$dates] as $locdates)
{
if (is_array($locdates))
{
$de .= array_search("DE", $locdates);
$date .= raw[$de]['release_date'];
}
else
{
$date .= $this->raw['release_date'];
}
}
return $date;
}
public function getReleaseDate()
{
$countries = $this->raw['releases']['countries'];
$de = array_search('DE', array_column($countries, 'iso_3166_1'));
return $countries[$de]['release_date'];
}
我目前在德国电影相关网站上工作。 由于我是编码新手,所以我买了一个脚本来解析来自 themoviedb 的电影数据。
这是正在解析的完整 JSON 响应:
对脚本的一点研究表明标准 release_date 被解析为:
public function getReleaseDate()
{
return (array_key_exists('release_date', $this->raw) ? $this->raw['release_date'] : $this->raw['first_air_date']);
}
这很好用,给我“2017-04-25”。但在 JSON 响应中,我想过滤掉特定于地区的发布日期。我特别想要这部分的 "release_date":
{
certification: "",
iso_3166_1: "DE",
primary: false,
release_date: "2017-04-27"
},
TL;DR:我需要一个函数来解析 JSON 响应,我只收到德国版本(“2017-04-27”)的 "release_date"。
这是我尝试过的:
public function getReleaseDateLocalized()
{
$date = '';
if (isset($this->raw['releases']['countries']))
{
$dates = $this->raw['releases']['countries'];
}
elseif(isset($this->raw['release_date']))
{
return $this->raw['release_date'];
}
else
{
return '0000-00-00';
}
foreach($this->raw[$dates] as $locdates)
{
if (is_array($locdates))
{
$de .= array_search("DE", $locdates);
$date .= raw[$de]['release_date'];
}
else
{
$date .= $this->raw['release_date'];
}
}
return $date;
}
public function getReleaseDate()
{
$countries = $this->raw['releases']['countries'];
$de = array_search('DE', array_column($countries, 'iso_3166_1'));
return $countries[$de]['release_date'];
}