在c語言中,遍歷json字符串是一項非常重要的任務。json是一種輕量級的數(shù)據(jù)交換格式,常用于數(shù)據(jù)傳輸和存儲。c語言中可以通過一些開源的庫來解析json字符串,如cjson和jansson。
下面是一個使用cjson庫來遍歷json字符串的例子:
#include <stdio.h> #include <cjson/cJSON.h> int main() { const char *json_string = "{\"name\":\"Tom\",\"age\":18,\"hobbies\":[\"reading\",\"traveling\"]}"; cJSON *root = cJSON_Parse(json_string); if (root == NULL) { printf("Failed to parse json string!\n"); return 1; } cJSON *name = cJSON_GetObjectItem(root, "name"); if (name && name->type == cJSON_String) { printf("name: %s\n", name->valuestring); } cJSON *age = cJSON_GetObjectItem(root, "age"); if (age && age->type == cJSON_Number) { printf("age: %d\n", age->valueint); } cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); if (hobbies && hobbies->type == cJSON_Array) { int i; cJSON *hobby; for (i = 0; i< cJSON_GetArraySize(hobbies); i++) { hobby = cJSON_GetArrayItem(hobbies, i); if (hobby && hobby->type == cJSON_String) { printf("hobby %d: %s\n", i + 1, hobby->valuestring); } } } cJSON_Delete(root); return 0; }
在這個例子中,先定義了一個json字符串,然后使用cJSON_Parse函數(shù)將其解析為一個cJSON對象。接著可以使用cJSON_GetObjectItem函數(shù)獲取對象中的鍵值對,判斷鍵值對的類型,并打印出來。同時,也展示了如何遍歷數(shù)組類型的鍵值對。
以上是c語言遍歷json字符串的一個簡單例子,希望對大家有所幫助。