在C語言中,我們經(jīng)常需要進行處理各種數(shù)據(jù),其中JSON串也是其中一種。在C語言中如何判斷一個字符串是否為JSON串呢?
#include <stdio.h> #include <stdbool.h> #include <ctype.h> bool is_json(char* str) { if (!str) return false; while (*str) { if (isspace(*str)) { str++; continue; } if (*str == '{') return true; else return false; } return false; } int main() { char json1[] = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }"; char json2[] = "This is not a json"; if (is_json(json1)) printf("json1 is a json!\n"); else printf("json1 is not a json!\n"); if (is_json(json2)) printf("json2 is a json!\n"); else printf("json2 is not a json!\n"); return 0; }
我們可以使用一個bool類型的函數(shù)來判斷一個字符串是否為JSON串。
首先,我們需要判斷傳入的字符串是否為NULL,如果是的話,則返回false。然后,我們需要忽略所有的空格和回車等字符。接著,我們需要判斷第一個非空格的字符是否為‘{’,如果是的話,則說明這個字符串是一個JSON串,返回true,如果第一個非空格的字符不是‘{’,則說明這個字符串不是一個JSON串,返回false。
在函數(shù)的main函數(shù)中,我們可以通過調(diào)用is_json函數(shù)來判斷一個字符串是否為JSON串,如果是的話,則輸出相應(yīng)的信息。