2019-08-19 报文转换 cjson

2019-08-19  本文已影响0人  hangzhou吴彦祖

/** @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;

}

上一篇下一篇

猜你喜欢

热点阅读