在C語言中,要從JSON數據中提取出字段,一般可以使用cJSON庫。
這個庫是一個非常方便和易于使用的JSON解析器。以下是一個使用cJSON庫解析JSON數據的示例代碼:
#include <stdio.h> #include <stdlib.h> #include <cJSON.h> int main() { char* json_string = "{\"name\":\"Tom\", \"age\":20, \"score\":{"score1\":80, \"score2\":90}}"; cJSON* json = cJSON_Parse(json_string); cJSON* name = cJSON_GetObjectItem(json, "name"); cJSON* age = cJSON_GetObjectItem(json, "age"); cJSON* score = cJSON_GetObjectItem(json, "score"); cJSON* score1 = cJSON_GetObjectItem(score, "score1"); cJSON* score2 = cJSON_GetObjectItem(score, "score2"); printf("name: %s\nage: %d\nscore1: %d\nscore2: %d\n", cJSON_Print(name), cJSON_Print(age), cJSON_Print(score1), cJSON_Print(score2)); cJSON_Delete(json); return 0; }
上面的代碼創建了一個JSON數據,然后使用cJSON_Parse()函數從字符串中解析出JSON對象。
接下來,我們使用cJSON_GetObjectItem()函數來獲取JSON中的各個字段。例如,我們可以使用“name”字段的名稱獲取“Tom”這個字符串,使用“age”字段獲取20這個整數,使用“score1”和“score2”字段獲取分數。
最后,我們使用cJSON_Print()函數打印出這些字段的值。
需要注意的是,在使用完JSON對象之后,需要使用cJSON_Delete()函數來釋放內存。