在C語言中,JSON字符串是一種常見的數據傳輸格式。JSON字符串由一系列的鍵值對組成,其中每個鍵值對使用"鍵名:鍵值"的形式表示,每個鍵值對之間使用逗號隔開。JSON字符串可以表示多種類型的數據,包括數字、布爾、字符串、數組和對象等。
{ "name": "John Smith", "age": 32, "isMarried": true, "hobbies": ["reading","dancing"], "address": { "street": "123 Main St", "city": "New York", "state": "NY" } }
在C語言中,可以使用第三方庫或手動解析的方式來進行JSON字符串的處理。其中,常用的第三方庫包括cJSON和cJSON-Compact等。
#include <stdio.h> #include <cjson/cJSON.h> int main() { const char *json_str = "{ \"name\": \"John Smith\", \"age\": 32 }"; cJSON *json = cJSON_Parse(json_str); if (json == NULL) { printf("Error parsing JSON: %s\n", cJSON_GetErrorPtr()); return 1; } cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); printf("Name: %s\n", cJSON_GetStringValue(name)); cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); printf("Age: %d\n", cJSON_GetNumberValue(age)); cJSON_Delete(json); return 0; }
上面的代碼使用了cJSON庫來解析JSON字符串,并提取了"name"和"age"這兩個鍵所對應的值。由于cJSON庫使用了內存池,因此還需要調用cJSON_Delete來釋放內存。