Magento 1.x有自己的JSON解码功能:
Mage::helper('core')->jsonDecode($array);
那么如何在Magento 2中使用JSON Decode。
答案 0 :(得分:0)
使用magento 2为json decode
尝试以下代码$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$jsonManager = $objectManager->get('\Magento\Framework\Json\Decoder');
return $jsonManager->decode($data);
答案 1 :(得分:0)
方法1:
echo $this->helper(\Magento\Framework\Json\Helper\Data::class)->jsonDecode($array);
或者
$jsonHelper = $this->helper('Magento\Framework\Json\Helper\Data');
echo $jsonHelper->jsonDecode($array);
方法2:
/**
* Constructor.
*
* @param \Magento\Framework\Json\Helper\Data $jsonHelper
*/
public function __construct(\Magento\Framework\Json\Helper\Data $jsonHelper)
{
$this->jsonHelper = $jsonHelper;
}
/**
* @param array $dataToDecode
* @return string
*/
public function decodeSomething(array $dataToDecode)
{
$decodedData= $this->jsonHelper->jsonDecode($dataToDecode);
return $decodedData;
}
答案 2 :(得分:0)
在当前版本的Magento2(2.2.3)中,\Magento\Framework\Json\Helper\Data
类已弃用,可能在将来的版本中不再使用。因此,强烈建议使用\Magento\Framework\Serialize\Serializer\Json
类来解码json字符串或将数组编码为json字符串。
/**
*
* @var \Magento\Framework\Serialize\Serializer\Json
*/
protected $_jsonSerializer;
public function __construct(
...
\Magento\Framework\Serialize\Serializer\Json $jsonSerializer,
...
) {
...
$this->_jsonSerializer = $jsonSerializer;
...
}
public function decodeJsonString($jsonString)
{
return $this->_jsonSerializer->unserialize($jsonString);
}
public function encodeArray($array)
{
return $this->_jsonSerializer->serialize($array);
}