Pergunta

How do I use unserialize method instead of json_decode, by inject vendor/magento/framework/Serialize/Serializer/

 foreach ($results as $result) {
            $incrementId = $result['increment_id'];
            $additionalInformation = $result['additional_information'];
            $additionalInformationArr = json_decode($additionalInformation);
            $addressVerificationJson = $additionalInformationArr->shipping_address_verification;
            $addressVerificationArr = json_decode($addressVerificationJson);
            $postalCode = $addressVerificationArr->postal_code;
}
Foi útil?

Solução

You have to inject Magento\Framework\Serialize\SerializerInterface in your constructor

namespace Vendor\Module;

use Magento\Framework\Serialize\SerializerInterface;

class MyClass
{
    /**
     * @var SerializerInterface
     */
    protected $serializer;

    public function __construct(SerializerInterface $serializer)
    {
        $this->serializer = $serializer;
    }
}

Than you can use it in your code

 foreach ($results as $result) {
            $incrementId = $result['increment_id'];
            $additionalInformation = $result['additional_information'];
            $additionalInformationArr = $this->serializer->unserialize($additionalInformation);
            $addressVerificationJson = $additionalInformationArr->shipping_address_verification;
            $addressVerificationArr = $this->serializer->unserialize($addressVerificationJson);
            $postalCode = $addressVerificationArr->postal_code;
}

Hope it helps

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top