/* * @Description: * @Version: 1.0 * @Autor: lishengyin * @Date: 2021-11-08 16:45:31 * @LastEditors: lishengyin * @LastEditTime: 2021-11-16 14:52:45 */ #pragma once #include #include #include #include #include #include #include "NettyHttpTrainInfo.h" using namespace std; class CarDevData { public: std::string addTime; std::string updateTime; int createBy; int updateBy; int enableFlag; std::string attr1; std::string attr2; std::string attr3; int appId; int dvId; std::string parentDvId; std::string linkDvId; int carId; int carriageId; int deviceType; int deviceSubType; int deviceControlType; int deviceSource; std::string deviceUuid; std::string deviceNum; std::string birdDeviceCode; std::string deviceName; std::string deviceUserName; std::string devicePassWord; std::string localIp; int port; std::string deviceMac; std::string stream; std::string place; std::string longitude; std::string latitude; std::string coX; std::string coY; std::string coZ; std::string uploadId; std::string imgUrl; std::string remark; std::string orderNo; public: CarDevData() {} ~CarDevData() {} bool jsonToObject(const rapidjson::Value& object){ const auto end = object.MemberEnd(); if(end == object.FindMember("addTime") || !object["addTime"].IsString()){ return false; }else{ addTime = object["addTime"].GetString(); } if(end == object.FindMember("updateTime") || !object["updateTime"].IsString()){ return false; }else{ updateTime = object["updateTime"].GetString(); } if(end == object.FindMember("createBy") || !object["createBy"].IsInt()){ return false; }else{ createBy = object["createBy"].GetInt(); } if(end == object.FindMember("updateBy") || !object["updateBy"].IsInt()){ return false; }else{ updateBy = object["updateBy"].GetInt(); } if(end == object.FindMember("enableFlag") || !object["enableFlag"].IsInt()){ return false; }else{ enableFlag = object["enableFlag"].GetInt(); } if(end == object.FindMember("appId") || !object["appId"].IsInt()){ return false; }else{ appId = object["appId"].GetInt(); } if(end == object.FindMember("dvId") || !object["dvId"].IsInt()){ return false; }else{ dvId = object["dvId"].GetInt(); } if(end == object.FindMember("carId") || !object["carId"].IsInt()){ return false; }else{ carId = object["carId"].GetInt(); } if(end == object.FindMember("carriageId") || !object["carriageId"].IsInt()){ return false; }else{ carriageId = object["carriageId"].GetInt(); } if(end == object.FindMember("deviceType") || !object["deviceType"].IsInt()){ return false; }else{ deviceType = object["deviceType"].GetInt(); } if(end == object.FindMember("deviceSubType") || !object["deviceSubType"].IsInt()){ return false; }else{ deviceSubType = object["deviceSubType"].GetInt(); } // -- // if(end == object.FindMember("deviceControlType") || !object["deviceControlType"].IsInt()){ // return false; // }else{ // deviceControlType = object["deviceControlType"].GetInt(); // } // if(end == object.FindMember("deviceSource") || !object["deviceSource"].IsInt()){ // return false; // }else{ // deviceSource = object["deviceSource"].GetInt(); // } // -- if(end == object.FindMember("deviceUuid")){ return false; }else{ if(object["deviceUuid"].IsString()) deviceUuid = object["deviceUuid"].GetString(); } if(end == object.FindMember("deviceNum")){ return false; }else{ if(object["deviceNum"].IsString()) deviceNum = object["deviceNum"].GetString(); } if(end == object.FindMember("birdDeviceCode") ){ return false; }else{ if(object["birdDeviceCode"].IsString()) birdDeviceCode = object["birdDeviceCode"].GetString(); } if(end == object.FindMember("deviceName")){ return false; }else{ if(object["deviceName"].IsString()) deviceName = object["deviceName"].GetString(); } if(end == object.FindMember("deviceUserName")){ return false; }else{ if(object["deviceUserName"].IsString()) deviceUserName = object["deviceUserName"].GetString(); } if(end == object.FindMember("devicePassWord")){ return false; }else{ if(object["devicePassWord"].IsString()) devicePassWord = object["devicePassWord"].GetString(); } if(end == object.FindMember("localIp")){ return false; }else{ if(object["localIp"].IsString()) localIp = object["localIp"].GetString(); } if(end == object.FindMember("port")){ return false; }else{ if(object["port"].IsInt()) port = object["port"].GetInt(); } if(end == object.FindMember("stream") || !object["stream"].IsString()){ return false; }else{ stream = object["stream"].GetString(); } if(end == object.FindMember("coX") || !object["coX"].IsString()){ return false; }else{ coX = object["coX"].GetString(); } if(end == object.FindMember("coY") || !object["coY"].IsString()){ return false; }else{ coY = object["coY"].GetString(); } if(end == object.FindMember("coZ") || !object["coZ"].IsString()){ return false; }else{ coZ = object["coZ"].GetString(); } return true; } }; class CarBasicData { public: std::string id; std::string pid; std::string label; CarDevData attr; int attr1; std::string child; std::string children; public: CarBasicData() {} ~CarBasicData() {} bool jsonToObject(const rapidjson::Value& object){ const auto end = object.MemberEnd(); if(end == object.FindMember("id") || !object["id"].IsString()){ return false; }else{ id = object["id"].GetString(); } if(end == object.FindMember("pid") || !object["pid"].IsString()){ return false; }else{ pid = object["pid"].GetString(); } if(end == object.FindMember("label") || !object["label"].IsString()){ return false; }else{ label = object["label"].GetString(); } if(end == object.FindMember("attr") || !object["attr"].IsObject()){ return false; }else{ const rapidjson::Value& obj = object["attr"]; if(!attr.jsonToObject(obj)){ return false; } } if(end == object.FindMember("attr1") || !object["attr1"].IsInt()){ return false; }else{ attr1 = object["attr1"].GetInt(); } return true; } }; class NettyHttpCarDevData { public: std::string id; std::string pid; std::string label; NettyHttpTrainInfo attr; std::string attr1; std::string child; vector children; public: NettyHttpCarDevData() {} ~NettyHttpCarDevData() {} bool jsonToObject(const rapidjson::Value& object){ const auto end = object.MemberEnd(); if(end == object.FindMember("id") || !object["id"].IsString()){ return false; }else{ id = object["id"].GetString(); } if(end == object.FindMember("pid") || !object["pid"].IsString()){ return false; }else{ pid = object["pid"].GetString(); } if(end == object.FindMember("label") || !object["label"].IsString()){ return false; }else{ label = object["label"].GetString(); } if(end == object.FindMember("attr") || !object["attr"].IsObject()){ return false; }else{ const rapidjson::Value& obj = object["attr"]; if(!attr.jsonToObject(obj)){ return false; } } if(end == object.FindMember("children")){ return false; }else if(object["children"].IsArray()){ const rapidjson::Value& objs = object["children"]; for (size_t i = 0; i < objs.Size(); i++) { const rapidjson::Value& obj = objs[i]; CarBasicData carBasicData; if(!carBasicData.jsonToObject(obj)){ cout << "CarBasicData解析失败" << endl; return false; } children.push_back(carBasicData); } } return true; } };