在C語言中,識別字符串是否為JSON格式是非常重要的操作。因為在處理數(shù)據(jù)時我們需要滿足各種各樣的格式。本篇文章將介紹如何使用C語言判斷一個字符串是否為JSON格式。
#include <stdio.h> #include <jansson.h> int main() { const char *json_str = "{"a": "b", "c": 1, "d": [2, 3]}"; json_error_t error; json_t *root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "Error: on line %d: %s\n", error.line, error.text); return 1; } json_decref(root); return 0; }
關鍵:json_str是我們需要處理的字符串。json_loads()函數(shù)可以將字符串解析成一個json_t結構體對象。如果返回的對象為NULL,說明字符串不符合JSON格式;否則就是符合JSON格式。因為json_t對象是會在堆上分配內(nèi)存的,所以在處理完之后需要手動調(diào)用json_decref()函數(shù)釋放內(nèi)存。