美文网首页
2019-08-19 报文转换 cjson

2019-08-19 报文转换 cjson

作者: hangzhou吴彦祖 | 来源:发表于2019-08-19 20:45 被阅读0次

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

    }

    相关文章

      网友评论

          本文标题:2019-08-19 报文转换 cjson

          本文链接:https://www.haomeiwen.com/subject/bozesctx.html