在使用C語言解析JSON(JavaScript Object Notation)數據時,我們需要使用第三方庫來進行操作,常用的有cJSON、Jansson等。
首先,我們需要將JSON數據解析為C語言中的結構體或數組,cJSON庫提供了一些函數來實現這個功能,例如cJSON_Parse()函數可以將JSON數據字符串解析為cJSON結構體。
#include <stdio.h> #include <cJSON.h> int main() { char* json_str = "{ \"name\": \"Tom\", \"age\": 18, \"gender\": \"male\" }"; cJSON* json = cJSON_Parse(json_str); if (json) { cJSON* name = cJSON_GetObjectItem(json, "name"); cJSON* age = cJSON_GetObjectItem(json, "age"); cJSON* gender = cJSON_GetObjectItem(json, "gender"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("Gender: %s\n", gender->valuestring); cJSON_Delete(json); } return 0; }
在上述代碼中,我們先定義了一個JSON數據字符串json_str,然后使用cJSON_Parse()函數將它解析為一個cJSON結構體,接著使用cJSON_GetObjectItem()函數取出其中的值,最后輸出到控制臺中。
需要注意的是,cJSON_GetObjectItem()返回的是cJSON結構體中的子元素,我們需要根據取出來的值的類型使用不同的取值函數,例如valuestring和valueint用于取出字符串類型和整數類型的值。
在嘗試取值之前,我們需要先判斷解析是否成功,如果cJSON_Parse()返回NULL,則說明解析失敗,我們需要釋放內存并退出程序。
if (json == NULL) { printf("JSON parse error: %s\n", cJSON_GetErrorPtr()); cJSON_Delete(json); return -1; }
以上就是在C語言中取JSON中的值的基本用法。
上一篇Python 格式化{
下一篇vue加載實現分頁