1.
{
fc:GpsData:{
SatelliteNumber:0
FixMod:0
GPSUseStatus:0
HomeSetState:0
PositionAccuracy:0
VelocityAccuracy:0
StartLongitude:0
StartLatitude:0
StartAltitude:0
HomeLongitude:0
HomeLatitude:0
HomeAltitude:0
CurrentLongitude:0
CurrentLatitude:0
CurrentAltitude:0
CurrentHeight:0
CurrentGroundHeight:0
CurrentGroundSpeed:0
CurrentAirSpeed:0
CurrentDownSpeed:0
CurrentNorthSpeed:0
CurrentEastSpeed:0
ITOW:0
Week:0
SonarHeight:0
CurrentForwardSpeed:0
CurrentRightSpeed:0
}
}
code:
int XnetNode::FcGpsDataJsonParse(char *pbuffer, FcGpsData_T *fcGpsData_t)
{
using std::string;
rapidjson::Document json_document;
if (json_document.Parse(pbuffer).HasParseError())
{
XAG_LOG_E("rapidjson parse!");
exit(EXIT_FAILURE);
}
if (!json_document.IsObject())
{
XAG_LOG_E("document is not Object!");
json_document.SetObject();
}
if (json_document.HasMember("fc:GpsData") && json_document["fc:GpsData"].IsObject())
{
const rapidjson::Value &object = json_document["fc:GpsData"];
if (object.HasMember("SatelliteNumber") && object["SatelliteNumber"].IsInt())
{
// cout << "Object.SatelliteNumber = " << object["SatelliteNumber"].GetInt() << endl;
fcGpsData_t->u32SatelliteNumber = object["SatelliteNumber"].GetInt();
}
if (object.HasMember("FixMod") && object["FixMod"].IsInt())
{
// cout << "Object.FixMod = " << object["FixMod"].GetInt() << endl;
fcGpsData_t->u32FixMod = object["FixMod"].GetInt();
}
if (object.HasMember("GPSUseStatus") && object["GPSUseStatus"].IsInt())
{
// cout << "Object.GPSUseStatus = " << object["GPSUseStatus"].GetInt() << endl;
fcGpsData_t->u32GpsUseStatus = object["GPSUseStatus"].GetInt();
}
if (object.HasMember("StartLongitude") && object["StartLongitude"].IsInt())
{
// cout << "Object.StartLongitude = " << object["StartLongitude"].GetInt() << endl;
fcGpsData_t->u32StartLongitude = object["StartLongitude"].GetInt();
}
if (object.HasMember("StartLatitude") && object["StartLatitude"].IsInt())
{
// cout << "Object.StartLatitude = " << object["StartLatitude"].GetInt() << endl;
fcGpsData_t->u32StartLatitude = object["StartLatitude"].GetInt();
}
}
return 0;
}
2.
{"flightSpeed":65,"uavType":20,"splitType":6,"horizontalOverlap":85,"wayStep":1000,"startPointIndex":0,"taskUuid":"8db8f55e3f1e4ca6","fromApp":"XAGRIX4","photoNum":0,"workMode":130,"taskId":"8db8f55e3f1e4ca6","SnapMode":0,"flightHeight":296,"verticalOverlap":70,"endPointIndex":5}
code:
int ParseJsonTaskId(char *pbuffer, string & taskid)
{
using std::string;
rapidjson::Document json_document;
if (json_document.Parse(pbuffer).HasParseError())
{
XAG_LOG_E("rapidjson parse!");
exit(EXIT_FAILURE);
}
if (!json_document.IsObject())
{
XAG_LOG_E("document is not Object!");
json_document.SetObject();
}
rapidjson::Value::ConstMemberIterator iter = json_document.FindMember("taskId");
if(iter != json_document.MemberEnd()){
cout << "==== taskId : " << iter->value.GetString() << endl;
taskid = iter->value.GetString();
cout << "==== taskId : " << taskid.c_str() << endl;
}
return 0;
}