void MQTTMessage::s_loadFromJsonView()

in greengrass_ipc/source/GreengrassCoreIpcModel.cpp [558:612]


        void MQTTMessage::s_loadFromJsonView(MQTTMessage &mQTTMessage, const Aws::Crt::JsonView &jsonView) noexcept
        {
            if (jsonView.ValueExists("topicName"))
            {
                mQTTMessage.m_topicName = Aws::Crt::Optional<Aws::Crt::String>(jsonView.GetString("topicName"));
            }
            if (jsonView.ValueExists("payload"))
            {
                if (jsonView.GetString("payload").size() > 0)
                {
                    mQTTMessage.m_payload = Aws::Crt::Optional<Aws::Crt::Vector<uint8_t>>(
                        Aws::Crt::Base64Decode(jsonView.GetString("payload")));
                }
            }
            if (jsonView.ValueExists("retain"))
            {
                mQTTMessage.m_retain = Aws::Crt::Optional<bool>(jsonView.GetBool("retain"));
            }
            if (jsonView.ValueExists("userProperties"))
            {
                mQTTMessage.m_userProperties = Aws::Crt::Vector<UserProperty>();
                for (const Aws::Crt::JsonView &listOfUserPropertiesJsonView : jsonView.GetArray("userProperties"))
                {
                    Aws::Crt::Optional<UserProperty> listOfUserPropertiesItem;
                    listOfUserPropertiesItem = UserProperty();
                    UserProperty::s_loadFromJsonView(listOfUserPropertiesItem.value(), listOfUserPropertiesJsonView);
                    mQTTMessage.m_userProperties.value().push_back(listOfUserPropertiesItem.value());
                }
            }
            if (jsonView.ValueExists("messageExpiryIntervalSeconds"))
            {
                mQTTMessage.m_messageExpiryIntervalSeconds =
                    Aws::Crt::Optional<int64_t>(jsonView.GetInt64("messageExpiryIntervalSeconds"));
            }
            if (jsonView.ValueExists("correlationData"))
            {
                if (jsonView.GetString("correlationData").size() > 0)
                {
                    mQTTMessage.m_correlationData = Aws::Crt::Optional<Aws::Crt::Vector<uint8_t>>(
                        Aws::Crt::Base64Decode(jsonView.GetString("correlationData")));
                }
            }
            if (jsonView.ValueExists("responseTopic"))
            {
                mQTTMessage.m_responseTopic = Aws::Crt::Optional<Aws::Crt::String>(jsonView.GetString("responseTopic"));
            }
            if (jsonView.ValueExists("payloadFormat"))
            {
                mQTTMessage.m_payloadFormat = Aws::Crt::Optional<Aws::Crt::String>(jsonView.GetString("payloadFormat"));
            }
            if (jsonView.ValueExists("contentType"))
            {
                mQTTMessage.m_contentType = Aws::Crt::Optional<Aws::Crt::String>(jsonView.GetString("contentType"));
            }
        }