色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 解析單層json數據

李中冰2年前8瀏覽0評論

C語言作為一種強大的編程語言,可以處理各種各樣的數據,包括JSON格式的數據。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它是基于JavaScript語言的一個子集,易于人們閱讀和編寫。在C語言中,我們可以使用一些庫來解析單層的JSON數據。下面是一段解析JSON數據的代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_JSON_STRING 1024
typedef struct{
char name[MAX_JSON_STRING];
char value[MAX_JSON_STRING];
}JsonField;
int parse_json(char *json_string, JsonField *json_fields, int n)
{
int cnt = 0, i = 0, j = 0;
char *p = NULL;
while (json_string[i] != '\0' && cnt< n) {
if (json_string[i] == '\"') {
j = 0;
i++;
p = json_fields[cnt].name;
while (json_string[i] != '\"') {
p[j++] = json_string[i++];
}
p[j] = '\0';
if (json_string[++i] != ':') {
continue;
} else {
i++;
}
if (json_string[i] != '\"') {
continue;
} else {
i++;
}
j = 0;
p = json_fields[cnt].value;
while (json_string[i] != '\"') {
p[j++] = json_string[i++];
}
p[j] = '\0';
cnt++;
}
i++;
}
return cnt;
}
int main()
{
char json_string[MAX_JSON_STRING] = "{\"id\":\"1234\",\"name\":\"Tom\",\"age\":\"18\",\"gender\":\"male\",\"address\":\"BeiJing\"}";
JsonField json_fields[5];
int cnt = parse_json(json_string, json_fields, 5);
for (int i = 0; i< cnt; i++) {
printf("%s : %s\n", json_fields[i].name, json_fields[i].value);
}
return 0;
}

在這段代碼中,我們使用了一個JsonField的結構體來存儲JSON數據中的字段名和字段值,然后使用parse_json函數解析JSON數據字符串,并將解析的結果存入JsonField結構體中。

在parse_json函數中,我們遍歷JSON數據字符串,當遇到雙引號時,就開始提取字段名和字段值,然后將其存入JsonField結構體中。最后將JsonField結構體中存儲的字段名和字段值打印出來。