在C語言中,我們通常使用第三方庫來解析JSON,比如常用的cJSON庫。cJSON是一個輕型的JSON解析器,可以很方便地將JSON字符串轉換成C語言對象,并且支持將C語言對象轉換成JSON字符串。
#include "cJSON.h" int main() { //將JSON字符串轉換成C語言對象 char* json_str = "{ 'name': '小明', 'age': 18, 'hobbies': ['足球', '游泳'] }"; cJSON* root = cJSON_Parse(json_str); //從C語言對象中獲取JSON數據 cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* hobbies = cJSON_GetObjectItem(root, "hobbies"); //遍歷hobbies的數組 cJSON* hobby = NULL; cJSON_ArrayForEach(hobby, hobbies) { printf("愛好:%s\n", hobby->valuestring); } //將C語言對象轉換成JSON字符串 char* json_str2 = cJSON_Print(root); printf("JSON字符串:%s\n", json_str2); //釋放內存 cJSON_Delete(root); free(json_str2); return 0; }
以上代碼演示了如何使用cJSON解析JSON字符串并遍歷JSON對象中的屬性和數組。注意,在使用cJSON庫時需要在編譯選項中加上"-lcjson"選項。