c語(yǔ)言是一門(mén)廣泛使用于操作系統(tǒng)、嵌入式系統(tǒng)、驅(qū)動(dòng)程序等開(kāi)發(fā)領(lǐng)域的語(yǔ)言。在實(shí)際開(kāi)發(fā)中,我們經(jīng)常需要使用json等數(shù)據(jù)格式來(lái)表示結(jié)構(gòu)化的數(shù)據(jù)。
那么,如何在c語(yǔ)言中傳入json參數(shù)呢?下面提供一個(gè)簡(jiǎn)單的例子,幫助大家了解相關(guān)內(nèi)容。
#include <stdio.h> #include <cjson/cJSON.h> void parseJSON(char *jsonStr) { cJSON *root = cJSON_Parse(jsonStr); if (root == NULL) { printf("json parse error\n"); return; } cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON_Delete(root); } int main() { char *jsonStr = "{\"age\": 18, \"name\": \"Tom\"}"; parseJSON(jsonStr); return 0; }
以上代碼使用了cJSON庫(kù)來(lái)解析json參數(shù),首先定義了一個(gè)parseJSON函數(shù),其參數(shù)為傳入的json字符數(shù)組。在函數(shù)內(nèi)部,使用cJSON_Parse函數(shù)將json字符串轉(zhuǎn)換成一個(gè)cJSON對(duì)象root。如果轉(zhuǎn)換失敗,則表示傳入?yún)?shù)有誤。
接下來(lái),通過(guò)cJSON_GetObjectItem函數(shù)獲取對(duì)應(yīng)的json節(jié)點(diǎn),例如這里獲取了"name"和"age"節(jié)點(diǎn)。通過(guò)valuestring和valueint字段獲取對(duì)應(yīng)的值。
最后使用cJSON_Delete函數(shù)釋放cJSON對(duì)象。
在main函數(shù)內(nèi)部,以字符串形式傳入json參數(shù),并調(diào)用parseJSON函數(shù)進(jìn)行解析。
以上便是在c語(yǔ)言中傳入json參數(shù)的一個(gè)簡(jiǎn)單例子。