在項目開發中常常需要對數據進行傳遞和解析,而一種常見的數據格式就是 JSON。在 C 語言中,很多時候需要判斷一個字符串是否符合 JSON 格式,本文將介紹一種判斷方法。
我們可以通過以下步驟來判斷一個字符串是否符合 JSON 格式:
- 將字符串轉換成 json_object
- 將 json_object 再轉換回字符串
- 比較兩個字符串是否相同
如果兩個字符串相同,那么說明該字符串符合 JSON 格式。
#include <json-c/json.h>
#include <string.h>
int is_json_format(char *str) {
struct json_object *obj = json_tokener_parse(str); // 將字符串轉換成 json_object
if (obj == NULL || is_error(obj))
return 0;
char* new_str = json_object_to_json_string(obj); // 將 json_object 再轉換成字符串
int result = strcmp(str, new_str); // 比較兩個字符串是否相同
json_object_put(obj);
return result == 0 ? 1 : 0;
}
上面的代碼中,json_tokener_parse 函數可以將一個字符串轉換成 json_object,如果字符串不符合 JSON 格式,則返回 NULL。另外,is_error 函數可以用來判斷 json_object 是否是一個錯誤對象。
json_object_to_json_string 函數可以將 json_object 轉換回字符串。
最后,使用 strcmp 函數比較兩個字符串是否相等即可。
以上就是在 C 語言中判斷字符串是否符合 JSON 格式的方法。