成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

關(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ù)會(huì)在堆區(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ù)返回值會(huì)保留字符串的數(shù)字部分7cafba33dae74682807b4e4ba4cb347a.png

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

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

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

json里面,鍵值對(duì)的值是可以為NULL的,因此選擇鍵值對(duì)時(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級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章標(biāo)題:關(guān)于cJSON庫,cJSON-創(chuàng)新互聯(lián)
文章URL:http://jinyejixie.com/article22/dehejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
永寿县| 乌拉特后旗| 长汀县| 屏南县| 德阳市| 九龙坡区| 房产| 灵璧县| 恩施市| 安图县| 磴口县| 昌宁县| 咸宁市| 招远市| 清河县| 同仁县| 揭西县| 广元市| 永定县| 无棣县| 青阳县| 中超| 河池市| 象山县| 子长县| 岳阳县| 黎川县| 道真| 葫芦岛市| 运城市| 博野县| 长沙县| 额敏县| 乐至县| 额敏县| 通州区| 哈密市| 运城市| 右玉县| 淮安市| 丹东市|