在C語言中,解析JSON格式數據是一項常見的任務。JSON是一種輕量級的數據交換格式,由鍵值對和數組組成,并使用大括號和方括號來表示。
要解析JSON,需要使用一個JSON解析庫。在C語言中,比較流行的解析庫有cJSON和JSMN。
下面以cJSON為例,演示如何解析一個簡單的JSON字符串。
#include <stdio.h> #include <cJSON.h> int main() { char* json = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}"; // 解析JSON cJSON* root = cJSON_Parse(json); // 獲取name字段的值 cJSON* name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); // 獲取age字段的值 cJSON* age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); // 獲取city字段的值 cJSON* city = cJSON_GetObjectItem(root, "city"); printf("city: %s\n", city->valuestring); // 釋放內存 cJSON_Delete(root); return 0; }
在這個例子中,我們首先定義了一個JSON字符串,然后使用cJSON_Parse()函數將其解析為一個cJSON對象。接著,使用cJSON_GetObjectItem()函數獲取每個字段的值,并輸出到控制臺上。
需要注意的是,在使用完cJSON_Parse()函數后,需要使用cJSON_Delete()函數來釋放解析結果所占用的內存。
以上就是C語言中解析JSON的基本方法。當然,在實際應用中,還可能會遇到更為復雜的JSON格式,需要更加細致的解析操作。