C語言中,我們經常需要處理JSON格式的數據。當我們從網絡或文件中獲取到數據時,需要判斷是否JSON格式化。這里介紹一種方法,可以簡單快速地判斷一個字符串是否JSON格式化。
#include <stdio.h> #include <stdbool.h> #include <jansson.h> bool is_json_format(const char* str) { json_error_t err; json_t* json = json_loads(str, JSON_DISABLE_EOF_CHECK, &err); if (!json) { return false; } json_decref(json); return true; } int main() { const char* json_str = "{ \"name\":\"小明\", \"age\":18 }"; if (is_json_format(json_str)) { printf("%s 是 JSON 格式\n", json_str); } else { printf("%s 不是 JSON 格式\n", json_str); } return 0; }
代碼中使用了jansson庫,可以方便地操作JSON格式的數據。is_json_format函數調用了jansson庫的json_loads函數,傳入需要判斷的字符串參數及JSON_DISABLE_EOF_CHECK參數。如果返回值不為空,則說明字符串符合JSON格式;否則就不符合。
可以通過調用該函數快速地判斷一個字符串是否JSON格式化。在實際應用中,我們還需要判斷JSON格式中各個字段是否符合要求。