C語言是一門廣泛運用在系統編程、嵌入式開發和信息安全等領域的高級語言,具有高效穩定、運行速度快等特性。在C語言開發中,我們經常需要處理JSON格式數據庫。下面就介紹一種C for遍歷循環JSON格式數據庫的方法。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <cjson/cJSON.h> // 從JSON節點中獲取字符串 char* getStringFromJSON(const cJSON* node, const char* item) { cJSON* obj = cJSON_GetObjectItem(node, item); if (cJSON_IsString(obj) && obj->valuestring != NULL) return obj->valuestring; else return ""; } // 從JSON節點中獲取整數 int getIntFromJSON(const cJSON* node, const char* item) { cJSON* obj = cJSON_GetObjectItem(node, item); if (cJSON_IsNumber(obj) && obj->valueint >0) return obj->valueint; else return 0; } int main() { char* json_str = "{\"name\": \"Tom\", \"age\": 18, \"gender\": \"male\"}"; // 解析JSON字符串 cJSON* json_root = cJSON_Parse(json_str); // 遍歷JSON節點 for (cJSON* node = json_root->child; node != NULL; node = node->next) { // 獲取節點的key和value const char* key = node->string; const cJSON* value = node->child; if (cJSON_IsString(value)) { // 如果value是字符串類型 char* str_value = getStringFromJSON(node, key); printf("%s: %s\n", key, str_value); } else if (cJSON_IsNumber(value)) { // 如果value是整數類型 int int_value = getIntFromJSON(node, key); printf("%s: %d\n", key, int_value); } else { // 其他類型 printf("%s: unknow type\n", key); } } cJSON_Delete(json_root); return 0; }
在上述C語言代碼中,我們使用了cJSON庫來解析JSON字符串,并遍歷JSON節點。通過節點類型的判斷,我們可以輕松獲取節點的key和value,進而對不同類型的節點進行不同的處理。通過這種方式,我們可以方便地遍歷循環JSON格式數據庫,從而實現各種數據處理的需求。