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

c 取json數(shù)組中的值

JSON是一種輕量級(jí)數(shù)據(jù)交換格式,由于其易讀性和易解析性,已經(jīng)被廣泛應(yīng)用于Web應(yīng)用程序中。C語言是一種廣泛使用的編程語言,在處理JSON數(shù)據(jù)中也有著很好的表現(xiàn)。

如果我們需要從JSON數(shù)組中提取數(shù)據(jù),那么我們就需要使用C語言的相關(guān)函數(shù)。在C語言中,我們可以使用第三方庫,如cJSON,也可以手動(dòng)解析JSON數(shù)據(jù)。下面是一個(gè)手動(dòng)解析JSON數(shù)據(jù)的例子:

char json[] = "[{\"name\":\"張三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]"; //JSON數(shù)組字符串
char *p = json;
while (*p)
{
if (*p=='{') //JSON對(duì)象開始
{
char *q = p + 1; //q指向JSON對(duì)象的第一個(gè)鍵
while (*q && *q!='}') //該JSON對(duì)象未結(jié)束
{
char key[20]; //鍵的名字
char value[20]; //鍵的值
int i = 0;
while (*q!='"') //鍵的名字
{
q ++;
}
q ++;
while (*q!='"')
{
key[i++] = *q ++;
}
key[i] = '\0';
q ++; //跳過鍵-值分隔符
i = 0;
while (*q!='"') //鍵的值
{
value[i++] = *q ++;
}
value[i] = '\0';
q ++; //跳過值結(jié)尾的引號(hào)
printf("%s:%s\n", key, value);
if (*q==',') //該JSON對(duì)象未結(jié)束
{
q ++;
}
}
}
p ++;
}

上述代碼會(huì)輸出JSON數(shù)組中每個(gè)JSON對(duì)象的鍵值對(duì)。

對(duì)于JSON數(shù)組中的每個(gè)JSON對(duì)象,如果我們需要獲取其中某個(gè)鍵的值,可以使用下面的代碼:

char json[] = "[{\"name\":\"張三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]"; //JSON數(shù)組字符串
char *p = json;
while (*p)
{
if (*p=='{') //JSON對(duì)象開始
{
char *q = p + 1; //q指向JSON對(duì)象的第一個(gè)鍵
while (*q && *q!='}') //該JSON對(duì)象未結(jié)束
{
char key[20]; //鍵的名字
char value[20]; //鍵的值
int i = 0;
while (*q!='"') //鍵的名字
{
q ++;
}
q ++;
while (*q!='"')
{
key[i++] = *q ++;
}
key[i] = '\0';
q ++; //跳過鍵-值分隔符
i = 0;
while (*q!='"') //鍵的值
{
value[i++] = *q ++;
}
value[i] = '\0';
q ++; //跳過值結(jié)尾的引號(hào)
if (strcmp(key, "name")==0) //如果是我們需要的鍵
{
printf("姓名:%s\n", value);
}
if (*q==',') //該JSON對(duì)象未結(jié)束
{
q ++;
}
}
}
p ++;
}

上述代碼會(huì)輸出JSON數(shù)組中每個(gè)JSON對(duì)象中鍵為name的值。