JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,廣泛應用于前端與后端之間的數據傳輸,C語言也可以解析JSON數據。
C語言沒有原生的JSON解析庫,需要使用第三方庫來解析JSON數據。常用的JSON解析庫有 cJSON、Jansson、ujson、YAJL等。
/* 使用cJSON解析json數據示例 */ #include#include #include #include "cJSON.h" int main() { char *json_str = "{\"name\":\"John\", \"age\":25, \"hobby\":[\"swimming\", \"reading\"]}"; //待解析的json字符串 cJSON *root = cJSON_Parse(json_str); //解析json字符串 if(!root) { printf("parse json string failed!\n"); return -1; } cJSON *name = cJSON_GetObjectItem(root, "name"); //獲取指定key的value if(name) printf("name:%s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); if(age) printf("age:%d\n", age->valueint); cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); if(hobby) { printf("hobby:"); int size = cJSON_GetArraySize(hobby); for(int i = 0; i< size; i++) { cJSON *item = cJSON_GetArrayItem(hobby, i); printf("%s ", item->valuestring); } printf("\n"); } cJSON_Delete(root); //銷毀cJSON結構體 return 0; }
在使用JSON解析庫時,需要在項目中添加對應的頭文件和庫文件,并且在解析完JSON數據后需要手動釋放內存。