JSON 是一種輕量級數據交換格式,它易于讀寫和解析。然而,在使用 JSON 數據時,我們經常會遇到校驗不通過的情況,這時候我們需要使用 c 語言進行校驗。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str = {"{\"name\": \"Tom\", \"age\": 18}"}; json_error_t error; json_t *root = json_loads(json_str, 0, &error); if(!root) { printf("Json loads error: %s", error.text); exit(1); } if(!json_is_object(root)) { printf("Json root is not object."); exit(1); } json_t *name = json_object_get(root, "name"); if(!json_is_string(name)) { printf("Json name is not string."); exit(1); } json_t *age = json_object_get(root, "age"); if(!json_is_integer(age)) { printf("Json age is not integer."); exit(1); } json_decref(root); printf("Json format is correct."); return 0; }
在這個例子中,我們使用 jansson 庫來解析 JSON 數據。分析代碼,我們首先定義了一個 JSON 字符串,并通過 json_loads 函數將其解析為 JSON 對象。如果解析失敗,程序就會輸出錯誤信息并終止運行。
接著,我們使用 json_is_object 函數檢查根元素是否為對象類型,如果不是,程序同樣會輸出錯誤信息并終止運行。
接下來,我們通過 json_object_get 函數獲取 JSON 中的 name 和 age 字段,并分別使用 json_is_string 和 json_is_integer 函數檢查其是否為字符串和整數類型,如果不是,程序同樣會輸出錯誤信息并終止運行。
最后我們使用 json_decref 函數釋放 JSON 對象的內存,并輸出 JSON 格式正確的信息。通過這個例子,我們可以看到在 c 語言中,校驗 JSON 數據的流程其實并不復雜。只需要使用合適的庫和函數,我們就能夠快速地檢查 JSON 數據的正確性。
上一篇elform驗證json
下一篇vue單擊穿透