Пример #1
0
//tomodify 4(数组等复杂结构或单层的结构体)
bool CProtoOrderUpdatePush::ParseProtoBody_Ack(const Json::Value &jsnVal, ProtoAckDataType &data)
{
	CHECK_RET(warn_if_prop_not_set(jsnVal, KEY_ACK_DATA), false);	

	VT_PROTO_FIELD vtField;
	GetProtoBodyField_Ack(vtField, data.body);

	const Json::Value &jsnBody = jsnVal[KEY_ACK_DATA];
	bool bSuc = CProtoParseBase::ParseProtoFields(jsnBody, vtField);
	CHECK_OP(bSuc, NOOP);

	return bSuc;
}
Пример #2
0
//tomodify 3(数组等复杂结构或单层的结构体)
bool CProtoGearPrice::ParseProtoBody_Req(const Json::Value &jsnVal, ProtoReqDataType &data)
{	
	if ( !warn_if_prop_not_set(jsnVal, KEY_REQ_PARAM) )
		return true;

	VT_PROTO_FIELD vtField;
	GetProtoBodyField_Req(vtField, data.body);

	const Json::Value &jsnBody = jsnVal[KEY_REQ_PARAM];
	bool bSuc = CProtoParseBase::ParseProtoFields(jsnBody, vtField);
	CHECK_OP(bSuc, NOOP);

	return true;
}
Пример #3
0
bool CProtoGearPrice::ParseGearArr(const Json::Value &jsnRetData, ProtoAckBodyType &data)
{
	CHECK_RET(warn_if_prop_not_set(jsnRetData, "GearArr"), false);	

	const Json::Value &jsnGearArr = jsnRetData["GearArr"];
	CHECK_RET(jsnGearArr.isArray(), false);

	bool bSuc = true;
	int nArrSize = jsnGearArr.size();
	for ( int n = 0; n < nArrSize; n++ )
	{		
		GearPriceAckItem item;
		VT_PROTO_FIELD vtField;
		GetGearArrField(vtField, item);

		const Json::Value jsnItem = jsnGearArr[n];
		CHECK_OP(!jsnItem.isNull(), continue);
		bSuc = CProtoParseBase::ParseProtoFields(jsnItem, vtField);
		CHECK_OP(bSuc, break);
		data.vtGear.push_back(item);
	}

	return bSuc;
}