protected function Json::getSourceData in Migrate Plus 8.4
Same name and namespace in other branches
- 8.5 src/Plugin/migrate_plus/data_parser/Json.php \Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Json::getSourceData()
- 8 src/Plugin/migrate_plus/data_parser/Json.php \Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Json::getSourceData()
- 8.2 src/Plugin/migrate_plus/data_parser/Json.php \Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Json::getSourceData()
- 8.3 src/Plugin/migrate_plus/data_parser/Json.php \Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Json::getSourceData()
Retrieves the JSON data and returns it as an array.
Parameters
string $url: URL of a JSON feed.
Return value
array The selected data to be iterated.
Throws
\GuzzleHttp\Exception\RequestException
1 call to Json::getSourceData()
- Json::openSourceUrl in src/
Plugin/ migrate_plus/ data_parser/ Json.php - Opens the specified URL.
File
- src/
Plugin/ migrate_plus/ data_parser/ Json.php, line 36
Class
- Json
- Obtain JSON data for migration.
Namespace
Drupal\migrate_plus\Plugin\migrate_plus\data_parserCode
protected function getSourceData($url) {
$response = $this
->getDataFetcherPlugin()
->getResponseContent($url);
// Convert objects to associative arrays.
$source_data = json_decode($response, TRUE);
// If json_decode() has returned NULL, it might be that the data isn't
// valid utf8 - see http://php.net/manual/en/function.json-decode.php#86997.
if (is_null($source_data)) {
$utf8response = utf8_encode($response);
$source_data = json_decode($utf8response, TRUE);
}
// Backwards-compatibility for depth selection.
if (is_int($this->itemSelector)) {
return $this
->selectByDepth($source_data);
}
// Otherwise, we're using xpath-like selectors.
$selectors = explode('/', trim($this->itemSelector, '/'));
foreach ($selectors as $selector) {
if (!empty($selector)) {
$source_data = $source_data[$selector];
}
}
return $source_data;
}