void GetTimingSyntheticTaskResult::parse()

in arms/src/model/GetTimingSyntheticTaskResult.cc [36:305]


void GetTimingSyntheticTaskResult::parse(const std::string &payload)
{
	Json::Reader reader;
	Json::Value value;
	reader.parse(payload, value);
	setRequestId(value["RequestId"].asString());
	auto dataNode = value["Data"];
	if(!dataNode["TaskId"].isNull())
		data_.taskId = dataNode["TaskId"].asString();
	if(!dataNode["RegionId"].isNull())
		data_.regionId = dataNode["RegionId"].asString();
	if(!dataNode["Name"].isNull())
		data_.name = dataNode["Name"].asString();
	if(!dataNode["TaskType"].isNull())
		data_.taskType = std::stoi(dataNode["TaskType"].asString());
	if(!dataNode["MonitorCategory"].isNull())
		data_.monitorCategory = std::stol(dataNode["MonitorCategory"].asString());
	if(!dataNode["Frequency"].isNull())
		data_.frequency = dataNode["Frequency"].asString();
	if(!dataNode["Status"].isNull())
		data_.status = dataNode["Status"].asString();
	if(!dataNode["ResourceGroupId"].isNull())
		data_.resourceGroupId = dataNode["ResourceGroupId"].asString();
	auto allMonitorsNode = dataNode["Monitors"]["monitor"];
	for (auto dataNodeMonitorsmonitor : allMonitorsNode)
	{
		Data::Monitor monitorObject;
		if(!dataNodeMonitorsmonitor["CityCode"].isNull())
			monitorObject.cityCode = dataNodeMonitorsmonitor["CityCode"].asString();
		if(!dataNodeMonitorsmonitor["OperatorCode"].isNull())
			monitorObject.operatorCode = dataNodeMonitorsmonitor["OperatorCode"].asString();
		if(!dataNodeMonitorsmonitor["ClientType"].isNull())
			monitorObject.clientType = std::stoi(dataNodeMonitorsmonitor["ClientType"].asString());
		data_.monitors.push_back(monitorObject);
	}
	auto allAvailableAssertionsNode = dataNode["AvailableAssertions"]["availableAssertion"];
	for (auto dataNodeAvailableAssertionsavailableAssertion : allAvailableAssertionsNode)
	{
		Data::AvailableAssertion availableAssertionObject;
		if(!dataNodeAvailableAssertionsavailableAssertion["Type"].isNull())
			availableAssertionObject.type = dataNodeAvailableAssertionsavailableAssertion["Type"].asString();
		if(!dataNodeAvailableAssertionsavailableAssertion["Target"].isNull())
			availableAssertionObject.target = dataNodeAvailableAssertionsavailableAssertion["Target"].asString();
		if(!dataNodeAvailableAssertionsavailableAssertion["Operator"].isNull())
			availableAssertionObject._operator = dataNodeAvailableAssertionsavailableAssertion["Operator"].asString();
		if(!dataNodeAvailableAssertionsavailableAssertion["Expect"].isNull())
			availableAssertionObject.expect = dataNodeAvailableAssertionsavailableAssertion["Expect"].asString();
		data_.availableAssertions.push_back(availableAssertionObject);
	}
	auto allTagsNode = dataNode["Tags"]["tag"];
	for (auto dataNodeTagstag : allTagsNode)
	{
		Data::Tag tagObject;
		if(!dataNodeTagstag["Key"].isNull())
			tagObject.key = dataNodeTagstag["Key"].asString();
		if(!dataNodeTagstag["Value"].isNull())
			tagObject.value = dataNodeTagstag["Value"].asString();
		data_.tags.push_back(tagObject);
	}
	auto monitorConfNode = dataNode["MonitorConf"];
	auto netICMPNode = monitorConfNode["NetICMP"];
	if(!netICMPNode["TargetUrl"].isNull())
		data_.monitorConf.netICMP.targetUrl = netICMPNode["TargetUrl"].asString();
	if(!netICMPNode["Interval"].isNull())
		data_.monitorConf.netICMP.interval = std::stoi(netICMPNode["Interval"].asString());
	if(!netICMPNode["PackageNum"].isNull())
		data_.monitorConf.netICMP.packageNum = std::stoi(netICMPNode["PackageNum"].asString());
	if(!netICMPNode["PackageSize"].isNull())
		data_.monitorConf.netICMP.packageSize = std::stoi(netICMPNode["PackageSize"].asString());
	if(!netICMPNode["SplitPackage"].isNull())
		data_.monitorConf.netICMP.splitPackage = netICMPNode["SplitPackage"].asString() == "true";
	if(!netICMPNode["Timeout"].isNull())
		data_.monitorConf.netICMP.timeout = std::stol(netICMPNode["Timeout"].asString());
	if(!netICMPNode["TracertEnable"].isNull())
		data_.monitorConf.netICMP.tracertEnable = netICMPNode["TracertEnable"].asString() == "true";
	if(!netICMPNode["TracertNumMax"].isNull())
		data_.monitorConf.netICMP.tracertNumMax = std::stoi(netICMPNode["TracertNumMax"].asString());
	if(!netICMPNode["TracertTimeout"].isNull())
		data_.monitorConf.netICMP.tracertTimeout = std::stol(netICMPNode["TracertTimeout"].asString());
	auto netTCPNode = monitorConfNode["NetTCP"];
	if(!netTCPNode["TargetUrl"].isNull())
		data_.monitorConf.netTCP.targetUrl = netTCPNode["TargetUrl"].asString();
	if(!netTCPNode["ConnectTimes"].isNull())
		data_.monitorConf.netTCP.connectTimes = std::stoi(netTCPNode["ConnectTimes"].asString());
	if(!netTCPNode["Interval"].isNull())
		data_.monitorConf.netTCP.interval = std::stol(netTCPNode["Interval"].asString());
	if(!netTCPNode["Timeout"].isNull())
		data_.monitorConf.netTCP.timeout = std::stol(netTCPNode["Timeout"].asString());
	if(!netTCPNode["TracertEnable"].isNull())
		data_.monitorConf.netTCP.tracertEnable = netTCPNode["TracertEnable"].asString() == "true";
	if(!netTCPNode["TracertNumMax"].isNull())
		data_.monitorConf.netTCP.tracertNumMax = std::stoi(netTCPNode["TracertNumMax"].asString());
	if(!netTCPNode["TracertTimeout"].isNull())
		data_.monitorConf.netTCP.tracertTimeout = std::stol(netTCPNode["TracertTimeout"].asString());
	auto netDNSNode = monitorConfNode["NetDNS"];
	if(!netDNSNode["TargetUrl"].isNull())
		data_.monitorConf.netDNS.targetUrl = netDNSNode["TargetUrl"].asString();
	if(!netDNSNode["DnsServerIpType"].isNull())
		data_.monitorConf.netDNS.dnsServerIpType = std::stoi(netDNSNode["DnsServerIpType"].asString());
	if(!netDNSNode["NsServer"].isNull())
		data_.monitorConf.netDNS.nsServer = netDNSNode["NsServer"].asString();
	if(!netDNSNode["QueryMethod"].isNull())
		data_.monitorConf.netDNS.queryMethod = std::stoi(netDNSNode["QueryMethod"].asString());
	if(!netDNSNode["Timeout"].isNull())
		data_.monitorConf.netDNS.timeout = std::stol(netDNSNode["Timeout"].asString());
	auto apiHTTPNode = monitorConfNode["ApiHTTP"];
	if(!apiHTTPNode["TargetUrl"].isNull())
		data_.monitorConf.apiHTTP.targetUrl = apiHTTPNode["TargetUrl"].asString();
	if(!apiHTTPNode["Method"].isNull())
		data_.monitorConf.apiHTTP.method = apiHTTPNode["Method"].asString();
	if(!apiHTTPNode["RequestHeaders"].isNull())
		data_.monitorConf.apiHTTP.requestHeaders = apiHTTPNode["RequestHeaders"].asString();
	if(!apiHTTPNode["ConnectTimeout"].isNull())
		data_.monitorConf.apiHTTP.connectTimeout = std::stol(apiHTTPNode["ConnectTimeout"].asString());
	if(!apiHTTPNode["Timeout"].isNull())
		data_.monitorConf.apiHTTP.timeout = std::stol(apiHTTPNode["Timeout"].asString());
	if(!apiHTTPNode["CheckCert"].isNull())
		data_.monitorConf.apiHTTP.checkCert = apiHTTPNode["CheckCert"].asString() == "true";
	if(!apiHTTPNode["ProtocolAlpnProtocol"].isNull())
		data_.monitorConf.apiHTTP.protocolAlpnProtocol = std::stoi(apiHTTPNode["ProtocolAlpnProtocol"].asString());
	auto requestBodyNode = apiHTTPNode["RequestBody"];
	if(!requestBodyNode["Content"].isNull())
		data_.monitorConf.apiHTTP.requestBody.content = requestBodyNode["Content"].asString();
	if(!requestBodyNode["Type"].isNull())
		data_.monitorConf.apiHTTP.requestBody.type = requestBodyNode["Type"].asString();
	auto fileDownloadNode = monitorConfNode["FileDownload"];
	if(!fileDownloadNode["TargetUrl"].isNull())
		data_.monitorConf.fileDownload.targetUrl = fileDownloadNode["TargetUrl"].asString();
	if(!fileDownloadNode["DownloadKernel"].isNull())
		data_.monitorConf.fileDownload.downloadKernel = std::stol(fileDownloadNode["DownloadKernel"].asString());
	if(!fileDownloadNode["QuickProtocol"].isNull())
		data_.monitorConf.fileDownload.quickProtocol = std::stol(fileDownloadNode["QuickProtocol"].asString());
	if(!fileDownloadNode["ConnectionTimeout"].isNull())
		data_.monitorConf.fileDownload.connectionTimeout = std::stol(fileDownloadNode["ConnectionTimeout"].asString());
	if(!fileDownloadNode["CustomHeaderContent"].isNull())
		data_.monitorConf.fileDownload.customHeaderContent = fileDownloadNode["CustomHeaderContent"].asString();
	if(!fileDownloadNode["IgnoreCertificateStatusError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateStatusError = std::stoi(fileDownloadNode["IgnoreCertificateStatusError"].asString());
	if(!fileDownloadNode["IgnoreCertificateUntrustworthyError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateUntrustworthyError = std::stoi(fileDownloadNode["IgnoreCertificateUntrustworthyError"].asString());
	if(!fileDownloadNode["IgnoreInvalidHostError"].isNull())
		data_.monitorConf.fileDownload.ignoreInvalidHostError = std::stoi(fileDownloadNode["IgnoreInvalidHostError"].asString());
	if(!fileDownloadNode["MonitorTimeout"].isNull())
		data_.monitorConf.fileDownload.monitorTimeout = std::stol(fileDownloadNode["MonitorTimeout"].asString());
	if(!fileDownloadNode["Redirection"].isNull())
		data_.monitorConf.fileDownload.redirection = std::stoi(fileDownloadNode["Redirection"].asString());
	if(!fileDownloadNode["TransmissionSize"].isNull())
		data_.monitorConf.fileDownload.transmissionSize = std::stol(fileDownloadNode["TransmissionSize"].asString());
	if(!fileDownloadNode["IgnoreCertificateCanceledError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateCanceledError = std::stoi(fileDownloadNode["IgnoreCertificateCanceledError"].asString());
	if(!fileDownloadNode["IgnoreCertificateAuthError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateAuthError = std::stoi(fileDownloadNode["IgnoreCertificateAuthError"].asString());
	if(!fileDownloadNode["IgnoreCertificateOutOfDateError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateOutOfDateError = std::stoi(fileDownloadNode["IgnoreCertificateOutOfDateError"].asString());
	if(!fileDownloadNode["IgnoreCertificateUsingError"].isNull())
		data_.monitorConf.fileDownload.ignoreCertificateUsingError = std::stoi(fileDownloadNode["IgnoreCertificateUsingError"].asString());
	if(!fileDownloadNode["VerifyWay"].isNull())
		data_.monitorConf.fileDownload.verifyWay = std::stoi(fileDownloadNode["VerifyWay"].asString());
	if(!fileDownloadNode["ValidateKeywords"].isNull())
		data_.monitorConf.fileDownload.validateKeywords = fileDownloadNode["ValidateKeywords"].asString();
	if(!fileDownloadNode["WhiteList"].isNull())
		data_.monitorConf.fileDownload.whiteList = fileDownloadNode["WhiteList"].asString();
	auto websiteNode = monitorConfNode["Website"];
	if(!websiteNode["TargetUrl"].isNull())
		data_.monitorConf.website.targetUrl = websiteNode["TargetUrl"].asString();
	if(!websiteNode["AutomaticScrolling"].isNull())
		data_.monitorConf.website.automaticScrolling = std::stoi(websiteNode["AutomaticScrolling"].asString());
	if(!websiteNode["CustomHeader"].isNull())
		data_.monitorConf.website.customHeader = std::stoi(websiteNode["CustomHeader"].asString());
	if(!websiteNode["CustomHeaderContent"].isNull())
		data_.monitorConf.website.customHeaderContent = websiteNode["CustomHeaderContent"].asString();
	if(!websiteNode["DisableCache"].isNull())
		data_.monitorConf.website.disableCache = std::stoi(websiteNode["DisableCache"].asString());
	if(!websiteNode["DisableCompression"].isNull())
		data_.monitorConf.website.disableCompression = std::stoi(websiteNode["DisableCompression"].asString());
	if(!websiteNode["FilterInvalidIP"].isNull())
		data_.monitorConf.website.filterInvalidIP = std::stoi(websiteNode["FilterInvalidIP"].asString());
	if(!websiteNode["IgnoreCertificateError"].isNull())
		data_.monitorConf.website.ignoreCertificateError = std::stoi(websiteNode["IgnoreCertificateError"].asString());
	if(!websiteNode["MonitorTimeout"].isNull())
		data_.monitorConf.website.monitorTimeout = std::stoi(websiteNode["MonitorTimeout"].asString());
	if(!websiteNode["Redirection"].isNull())
		data_.monitorConf.website.redirection = std::stoi(websiteNode["Redirection"].asString());
	if(!websiteNode["SlowElementThreshold"].isNull())
		data_.monitorConf.website.slowElementThreshold = std::stol(websiteNode["SlowElementThreshold"].asString());
	if(!websiteNode["WaitCompletionTime"].isNull())
		data_.monitorConf.website.waitCompletionTime = std::stol(websiteNode["WaitCompletionTime"].asString());
	if(!websiteNode["VerifyStringBlacklist"].isNull())
		data_.monitorConf.website.verifyStringBlacklist = websiteNode["VerifyStringBlacklist"].asString();
	if(!websiteNode["VerifyStringWhitelist"].isNull())
		data_.monitorConf.website.verifyStringWhitelist = websiteNode["VerifyStringWhitelist"].asString();
	if(!websiteNode["ElementBlacklist"].isNull())
		data_.monitorConf.website.elementBlacklist = websiteNode["ElementBlacklist"].asString();
	if(!websiteNode["DNSHijackWhitelist"].isNull())
		data_.monitorConf.website.dNSHijackWhitelist = websiteNode["DNSHijackWhitelist"].asString();
	if(!websiteNode["PageTamper"].isNull())
		data_.monitorConf.website.pageTamper = websiteNode["PageTamper"].asString();
	if(!websiteNode["FlowHijackJumpTimes"].isNull())
		data_.monitorConf.website.flowHijackJumpTimes = std::stoi(websiteNode["FlowHijackJumpTimes"].asString());
	if(!websiteNode["FlowHijackLogo"].isNull())
		data_.monitorConf.website.flowHijackLogo = websiteNode["FlowHijackLogo"].asString();
	auto streamNode = monitorConfNode["Stream"];
	if(!streamNode["TargetUrl"].isNull())
		data_.monitorConf.stream.targetUrl = streamNode["TargetUrl"].asString();
	if(!streamNode["StreamType"].isNull())
		data_.monitorConf.stream.streamType = std::stoi(streamNode["StreamType"].asString());
	if(!streamNode["StreamMonitorTimeout"].isNull())
		data_.monitorConf.stream.streamMonitorTimeout = std::stoi(streamNode["StreamMonitorTimeout"].asString());
	if(!streamNode["StreamAddressType"].isNull())
		data_.monitorConf.stream.streamAddressType = std::stoi(streamNode["StreamAddressType"].asString());
	if(!streamNode["PlayerType"].isNull())
		data_.monitorConf.stream.playerType = std::stoi(streamNode["PlayerType"].asString());
	if(!streamNode["CustomHeaderContent"].isNull())
		data_.monitorConf.stream.customHeaderContent = streamNode["CustomHeaderContent"].asString();
	if(!streamNode["WhiteList"].isNull())
		data_.monitorConf.stream.whiteList = streamNode["WhiteList"].asString();
	auto customPeriodNode = dataNode["CustomPeriod"];
	if(!customPeriodNode["EndHour"].isNull())
		data_.customPeriod.endHour = std::stol(customPeriodNode["EndHour"].asString());
	if(!customPeriodNode["StartHour"].isNull())
		data_.customPeriod.startHour = std::stol(customPeriodNode["StartHour"].asString());
	auto commonSettingNode = dataNode["CommonSetting"];
	if(!commonSettingNode["IpType"].isNull())
		data_.commonSetting.ipType = std::stoi(commonSettingNode["IpType"].asString());
	if(!commonSettingNode["MonitorSamples"].isNull())
		data_.commonSetting.monitorSamples = std::stoi(commonSettingNode["MonitorSamples"].asString());
	if(!commonSettingNode["IsOpenTrace"].isNull())
		data_.commonSetting.isOpenTrace = commonSettingNode["IsOpenTrace"].asString() == "true";
	if(!commonSettingNode["TraceClientType"].isNull())
		data_.commonSetting.traceClientType = std::stoi(commonSettingNode["TraceClientType"].asString());
	if(!commonSettingNode["XtraceRegion"].isNull())
		data_.commonSetting.xtraceRegion = commonSettingNode["XtraceRegion"].asString();
	auto customHostNode = commonSettingNode["CustomHost"];
	if(!customHostNode["SelectType"].isNull())
		data_.commonSetting.customHost.selectType = std::stoi(customHostNode["SelectType"].asString());
	auto allHostsNode = customHostNode["Hosts"]["host"];
	for (auto customHostNodeHostshost : allHostsNode)
	{
		Data::CommonSetting::CustomHost::Host hostObject;
		if(!customHostNodeHostshost["Domain"].isNull())
			hostObject.domain = customHostNodeHostshost["Domain"].asString();
		if(!customHostNodeHostshost["IpType"].isNull())
			hostObject.ipType = std::stoi(customHostNodeHostshost["IpType"].asString());
		auto allIps = value["Ips"]["ip"];
		for (auto value : allIps)
			hostObject.ips.push_back(value.asString());
		data_.commonSetting.customHost.hosts.push_back(hostObject);
	}
	auto customVPCSettingNode = commonSettingNode["CustomVPCSetting"];
	if(!customVPCSettingNode["RegionId"].isNull())
		data_.commonSetting.customVPCSetting.regionId = customVPCSettingNode["RegionId"].asString();
	if(!customVPCSettingNode["VpcId"].isNull())
		data_.commonSetting.customVPCSetting.vpcId = customVPCSettingNode["VpcId"].asString();
	if(!customVPCSettingNode["VSwitchId"].isNull())
		data_.commonSetting.customVPCSetting.vSwitchId = customVPCSettingNode["VSwitchId"].asString();
	if(!customVPCSettingNode["SecureGroupId"].isNull())
		data_.commonSetting.customVPCSetting.secureGroupId = customVPCSettingNode["SecureGroupId"].asString();
	auto customPrometheusSettingNode = commonSettingNode["CustomPrometheusSetting"];
	if(!customPrometheusSettingNode["PrometheusLabels"].isNull())
		data_.commonSetting.customPrometheusSetting.prometheusLabels = customPrometheusSettingNode["PrometheusLabels"].asString();
	if(!customPrometheusSettingNode["PrometheusClusterId"].isNull())
		data_.commonSetting.customPrometheusSetting.prometheusClusterId = customPrometheusSettingNode["PrometheusClusterId"].asString();
	if(!customPrometheusSettingNode["PrometheusClusterRegion"].isNull())
		data_.commonSetting.customPrometheusSetting.prometheusClusterRegion = customPrometheusSettingNode["PrometheusClusterRegion"].asString();
	if(!value["Code"].isNull())
		code_ = std::stol(value["Code"].asString());
	if(!value["Message"].isNull())
		message_ = value["Message"].asString();

}