欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 正則解析 json

錢琪琛1年前9瀏覽0評論

C語言是一門強大的編程語言,在實際開發過程中,經常需要處理各種數據格式。其中,JSON格式數據應用最為廣泛,而正則表達式則是一種強大的文本分析工具。那么,如何使用C語言中的正則表達式來解析JSON格式數據呢?接下來,我們將給您介紹一些實用的技巧。

#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
#define MAX_MATCH 10
#define MAX_LENGTH 1024
typedef struct JsonPair {
char* key;
char* value;
} JsonPair;
void parseJson(char* str, JsonPair* pairs, int* count) {
regex_t reg;
regmatch_t matches[MAX_MATCH];
char pattern[MAX_LENGTH] = "\"([^\"]*)\":\"([^\"]*)\"";
if (regcomp(®, pattern, REG_EXTENDED) != 0) {
printf("Compile Failed!\n");
exit(1);
}
int offset = 0;
*count = 0;
while (regexec(®, str + offset, MAX_MATCH, matches, 0) == 0) {
pairs[*count].key = strndup(str + offset + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so);
pairs[*count].value = strndup(str + offset + matches[2].rm_so, matches[2].rm_eo - matches[2].rm_so);
offset += matches[2].rm_eo;
(*count)++;
}
regfree(®);
}
int main() {
char* str = "{\"name\":\"Tom\",\"age\":\"18\",\"gender\":\"male\",\"score\":\"90\"}";
JsonPair pairs[MAX_LENGTH];
int count;
parseJson(str, pairs, &count);
printf("Parse Results:\n");
int i;
for (i = 0; i< count; i++) {
printf("Key: %s\nValue: %s\n", pairs[i].key, pairs[i].value);
}
return 0;
}

上述代碼中,我們使用了正則表達式的基本知識,將匹配結果保存在JsonPair結構體數組中。在實際開發中,我們可以根據需要修改正則表達式的匹配規則,靈活地解析JSON格式數據。同時,我們也可以通過正則表達式完成其他文本分析任務,豐富C語言的功能,提高開發效率。