2019-08-19 报文转换 cjson
/** @fn std::string clientframework::TGenJSONStr(const T& tJSONStruct) * @brief 结构体生成JSON字符 * @param (IN)const T& tJSONStruct 结构体 * @return JSON字符串,utf-8格式 */
template<class T>
std::string TGenJSONStr(const T& tJSONStruct)
{ std::string strJSON; // 根节点
cJSON* pRoot = cJSON_CreateObject();
if (nullptr == pRoot) { return strJSON; } //
结构体节点 cJSON* pCJSONPtr = tJSONStruct.CJSONPtr();
if (nullptr == pCJSONPtr)
{ cJSON_Delete(pRoot); return strJSON; }
cJSON_AddItemToObject(pRoot, tJSONStruct.Name(), pCJSONPtr);
char* pJSON = cJSON_Print(pRoot);
if (pJSON != nullptr)
{ strJSON = std::string(pJSON);
cJSON_free(pJSON);
pJSON = nullptr; }
cJSON_Delete(pRoot); pRoot = nullptr; return strJSON; }
template <class T>
std::string TGenJSONStr(const T& tJSONStruct)
{
std::string strJSON; // 结构体节点
cJSON* pCJSONPtr = tJSONStruct.CJSONPtr();
if (nullptr == pCJSONPtr)
{ return strJSON; }
char* pJSON = cJSON_Print(pCJSONPtr);
if (pJSON != nullptr)
{
strJSON = std::string(pJSON);
cJSON_free(pJSON); pJSON = nullptr; }
return strJSON;
}