C語言中,我們常常需要將JSON字符串轉(zhuǎn)化為實(shí)體對象,以便更方便地操作數(shù)據(jù),C語言中也提供了一些庫來實(shí)現(xiàn)這個(gè)功能。JSON是一種輕量級的數(shù)據(jù)交換格式,在C語言中,有一些常用的JSON庫,如cJSON、Json-c等,這里我們以cJSON為例。
#include <stdio.h> #include <cJSON.h> int main() { // 聲明和初始化要解析的JSON字符串 char* json_str = "{\"name\":\"Tom\",\"age\":20,\"score\":{\"math\":80,\"english\":90}}"; // 解析JSON字符串 cJSON* json_obj = cJSON_Parse(json_str); // 獲取name的值 char* name = cJSON_GetObjectItem(json_obj, "name")->valuestring; printf("name: %s \n", name); // 獲取age的值 int age = cJSON_GetObjectItem(json_obj, "age")->valueint; printf("age: %d \n", age); // 獲取score cJSON* score = cJSON_GetObjectItem(json_obj, "score"); // 獲取math的值 int math = cJSON_GetObjectItem(score, "math")->valueint; printf("math: %d \n", math); // 獲取english的值 int english = cJSON_GetObjectItem(score, "english")->valueint; printf("english: %d \n", english); // 釋放cJSON對象 cJSON_Delete(json_obj); return 0; }
以上代碼解析了一個(gè)JSON字符串,獲取了它的各個(gè)屬性的值,并輸出到控制臺中,這里我們使用了cJSON庫中的一些常用函數(shù)。
首先,我們調(diào)用cJSON_Parse()函數(shù)將字符串解析成cJSON對象,接著使用cJSON_GetObjectItem()函數(shù)獲取對象的屬性值,再使用valuestring、valueint等函數(shù)獲取具體的值。
最后,我們使用cJSON_Delete()函數(shù)釋放cJSON對象,防止內(nèi)存泄漏。