在使用C語言處理JSON數據時,經常需要驗證JSON中是否存在某個鍵或值。下面介紹一個簡單的方法來完成這個任務。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(int argc, char **argv) { char *json_string = "{ \"name\": \"Tom\", \"age\": 28 }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (root == NULL) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); exit(1); } int exist = 0; const char *key = "age"; if (json_object_get(root, key) != NULL) { exist = 1; } json_decref(root); if (exist) { printf("%s exists in the JSON\n", key); } else { printf("%s does not exist in the JSON\n", key); } return 0; }
上述代碼中,我們首先定義了一個JSON字符串,并使用json_loads函數將其加載為一個JSON對象。接著,我們定義了一個鍵的名稱,并使用json_object_get函數判斷該鍵是否在對象中。如果存在,exist變量將被置為1,否則為0。
輸出結果將根據exist的值不同而有所不同,從而識別JSON對象中是否存在指定的鍵。