JSON是一種輕量級的數(shù)據(jù)交換格式,具有易讀、易寫和便于解析等特點,因此在現(xiàn)代開發(fā)中得到了廣泛的應用。在C語言中,我們可以通過各種庫,例如Jansson、cJSON等來操作JSON字符串。本文將演示如何使用cJSON庫來遍歷JSON字符串。
#include <stdio.h> #include <cJSON.h> int main() { char* json_string = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"running\"]}"; cJSON* root = cJSON_Parse(json_string); // 解析JSON串 if (root == NULL) { printf("failed to parse json: %s\n", cJSON_GetErrorPtr()); return -1; } cJSON* item = NULL; cJSON_ArrayForEach(item, root) { if (item->type == cJSON_String) { // 如果是字符串類型 printf("%s: %s\n", item->string, item->valuestring); } else if (item->type == cJSON_Number) { // 如果是數(shù)字類型 printf("%s: %d\n", item->string, item->valueint); } else if (item->type == cJSON_Array) { // 如果是數(shù)組類型 printf("%s: [", item->string); cJSON* subitem = NULL; cJSON_ArrayForEach(subitem, item) { printf("%s, ", subitem->valuestring); } printf("\b\b]\n"); // 去掉末尾的逗號和空格 } } cJSON_Delete(root); // 釋放內存 return 0; }
以上代碼示例中,我們使用了Jansson庫來解析JSON字符串,并遍歷了JSON對象中的所有元素。使用cJSON庫,只需要簡單的幾行代碼,就可以實現(xiàn)對JSON串的解析和遍歷,非常方便和易用。