真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于cJSON庫,cJSON-創(chuàng)新互聯(lián)

先了解一下cJSON_Parse(),函數(shù)原型如下

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了瀍河免費(fèi)建站歡迎大家使用!
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);

函數(shù)作用:將一個(gè)符合json數(shù)據(jù)結(jié)構(gòu)的字符串轉(zhuǎn)換為cJSON結(jié)構(gòu)體。

參數(shù):

value:輸入的字符串

返回值:如果解析正常,返回一個(gè)指向整個(gè)object的指針;如果解析失敗,則返回NULL。

注意:cJSON_Parse()函數(shù)會在堆區(qū)開辟空間,因此使用完后要及時(shí)調(diào)用cJSON_Delete釋放內(nèi)存,防止內(nèi)存泄漏問題

上代碼

#include#include "cJSON.h"

int main(int argc, char const *argv[])
{
    char buf[512] = "111111qqq";
    printf("buf:%s\n",buf);
    cJSON* cjson = cJSON_Parse(buf);//將JSON字符串轉(zhuǎn)換成JSON結(jié)構(gòu)體
    if(cjson == NULL)//判斷轉(zhuǎn)換是否成功
    {
        printf("Error before: [%s]\n", cJSON_GetErrorPtr());
        return -1;
    }
    else
    {
        printf("cJSON錯(cuò)誤%s\n",cJSON_Print(cjson));//打包成功調(diào)用cJSON_Print打印輸出
    }
    cJSON_Delete(cjson);
    return 0;
}

——————————————————————————————————————————

在進(jìn)行使用cJSON庫解析json字符串時(shí)發(fā)現(xiàn),如果只使用if(cjson == NULL)并不能判斷以數(shù)字開頭的字符串,函數(shù)返回值會保留字符串的數(shù)字部分7cafba33dae74682807b4e4ba4cb347a.png

此時(shí)如果繼續(xù)去調(diào)用函數(shù)去反序列化json,由于格式不匹配,便會“段錯(cuò)誤”;

目前想到的解決方式如下:

既然cJSON_Parse()函數(shù)無法完全判斷,那就增加判斷條件,我選用的的是使用cJSON_GetObjectItem()函數(shù),判斷一下鍵值對,該函數(shù)若查找的鍵沒有對應(yīng)值則會返回NULL;

json里面,鍵值對的值是可以為NULL的,因此選擇鍵值對時(shí)需要注意;

#include#include "cJSON.h"

int main(int argc, char const *argv[])
{
    char buf[512] = "111111qqq";
    printf("buf:%s\n",buf);
    cJSON* cjson = cJSON_Parse(buf);//將JSON字符串轉(zhuǎn)換成JSON結(jié)構(gòu)體
    if(cjson == NULL)//判斷轉(zhuǎn)換是否成功
    {
        printf("Error before: [%s]\n", cJSON_GetErrorPtr());
        return -1;
    }
    else
    {
        if(cJSON_GetObjectItem(cjson, "uuid") == NULL)
        {
            printf("Error before: [%s]\n", cJSON_GetErrorPtr());
            return -1;
        }
        printf("cJSON錯(cuò)誤%s\n",cJSON_Print(cjson));//打包成功調(diào)用cJSON_Print打印輸出
    }
    cJSON_Delete(cjson);
    return 0;
}

12443b337a064c26ae2d111b359fe349.png

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:關(guān)于cJSON庫,cJSON-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/dehejc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部