public function WSExampleBlockDecoder::decode in Web Service Data 8
Same name and namespace in other branches
- 2.0.x modules/wsdata_example/src/Plugin/WSDecoder/WSExampleBlockDecoder.php \Drupal\wsdata_example\Plugin\WSDecoder\WSExampleBlockDecoder::decode()
Decode the web service response string into an array.
Overrides WSDecoderBase::decode
File
- modules/
wsdata_example/ src/ Plugin/ WSDecoder/ WSExampleBlockDecoder.php, line 21
Class
- WSExampleBlockDecoder
- JSON Decoder.
Namespace
Drupal\wsdata_example\Plugin\WSDecoderCode
public function decode($data) {
$items = [];
if (!isset($data) || empty($data)) {
return;
}
// Remove UTF-8 BOM if present, json_decode() does not like it.
if (substr($data, 0, 3) == pack("CCC", 0xef, 0xbb, 0xbf)) {
$data = substr($data, 3);
}
$data = trim($data);
$json_data = Json::decode($data);
foreach ($json_data as $element) {
$items[] = [
'#markup' => '<h2>' . $element['title'] . '</h2><p>' . $element['body'] . '</p>',
];
}
$content = [
'#theme' => 'item_list',
'#list_type' => 'ul',
'#title' => 'My List',
'#items' => $items,
'#attributes' => [
'class' => 'mylist',
],
'#wrapper_attributes' => [
'class' => 'container',
],
];
return \Drupal::service('renderer')
->render($content);
}