JSON是一種輕量級數據格式,常用于前后端數據交互。
C語言常用的JSON庫有cJSON和jansson。本文以cJSON為例,介紹如何遍歷JSON對象。
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{\"name\":\"John\",\"age\":30,\"married\":true,\"hobbies\":[\"reading\",\"traveling\"]}"; cJSON *root = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *married = cJSON_GetObjectItem(root, "married"); printf("married: %s\n", cJSON_IsTrue(married) ? "true" : "false"); cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); printf("hobbies:\n"); int i; cJSON *hobby; cJSON_ArrayForEach(hobby, hobbies) { printf("%s\n", hobby->valuestring); } cJSON_Delete(root); return 0; }
以上代碼中,json_str是一個JSON字符串。使用cJSON_Parse函數將其解析為cJSON對象root。
cJSON_GetObjectItem函數可以獲取JSON對象的指定成員。
cJSON_IsTrue函數判斷JSON對象是否為true。
cJSON_ArrayForEach函數可以遍歷JSON數組。
以上代碼輸出:
name: John age: 30 married: true hobbies: reading traveling
下一篇c 遍歷json集合