1 exception(s): Exception #0 (Zend_Json_Exception): Decoding failed: Syntax error Exception #0 (Zend_Json_Exception): Decoding failed: Syntax error#0 /var/www/html/magento2/vendor/magento/framework/Json/Decoder.php(20): Zend_Json::decode(”) #1 var/www/html/magento2/vendor/magento/framework/Json/Helper/Data.php(58): Magento\Framework\Json\Decoder->decode(false)
In my custom mdoule
I am creating a slider by fetching data form API.
IN /var/www/html/magento2/app/code/Custommodule/ReviewRating/Block/HomehorizontalWidget.php
<?php namespace Custommodule\ReviewRating\Block; class HomehorizontalWidget extends \Magento\Framework\View\Element\Template { protected $ _helper; protected $ jsonHelper; public function __construct( \Magento\Framework\View\Element\Template\Context $ context, array $ data = [], \Custommodule\ReviewRating\Helper\Data $ helper, \Magento\Framework\Json\Helper\Data $ jsonHelper ) { parent::__construct($ context, $ data); $ this->_helper = $ helper; $ this->jsonHelper = $ jsonHelper; } ................. public function get_reviews_data( $ url ){ $ dataResponse = $ this->getDataFromApi($ url); return $ dataResponse['data']['reviews']; } public function getDataFromApi($ url) { $ ch = curl_init(); curl_setopt($ ch, CURLOPT_URL, $ url); curl_setopt($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ ch, CURLOPT_TIMEOUT, 5); $ data = curl_exec($ ch); $ httpcode = curl_getinfo($ ch, CURLINFO_HTTP_CODE); curl_close($ ch); $ decodedData = $ this->jsonHelper->jsonDecode($ data); return ($ httpcode>=200 && $ httpcode<300) ? $ decodedData : false; }
IN /var/www/html/magento2/app/code/Custommodule/ReviewRating/view/frontend/templates/homehorizontalwidget.phtml
$ url = "http://website.com/api?url"; $ reviewsData = $ this->get_reviews_data( $ url ); echo "<pre>"; print_r( $ reviewsData ); echo "</pre>"; ?>