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

c json地址字符串解析

錢良釵2年前9瀏覽0評論

C語言有很多種實現(xiàn)JSON解析的庫,但是對于某些應(yīng)用來說,使用完整的庫可能太過笨重和復(fù)雜。對于這些情況,C語言提供了另外一種解析JSON的方式,那就是解析JSON地址字符串。

JSON地址字符串是指在JSON對象中,使用“/”引導(dǎo)的一個字符串,表示了要訪問的某個屬性值。

{
"name": "Tom",
"age": 18,
"gender": true,
"address": {
"province": "Beijing",
"city": "Beijing"
}
}

比如,上面的JSON對象中,要訪問“address”對象中的“city”屬性,可以使用地址字符串“/address/city”。

使用C語言解析JSON地址字符串,代碼如下:

#include <stdio.h>
#include <string.h>
void parseJSON(char* json, char* address)
{
char* token = strtok(address, "/");
while(token != NULL)
{
json = strstr(json, token);
if(json == NULL)
{
printf("Not Found!\n");
return;
}
json += strlen(token) + 1;
token = strtok(NULL, "/");
}
json -= strlen(token) + 1;
char* value = strchr(json, '\"');
printf("%.*s\n", (int)(strchr(value + 1, '\"') - value - 1), value + 1);
}
int main()
{
char json[] = "{\"name\":\"Tom\",\"age\":18,\"gender\":true,\"address\":{\"province\":\"Beijing\",\"city\":\"Beijing\"}}";
char address[] = "/address/city";
parseJSON(json, address);
return 0;
}

上面的代碼中,parseJSON函數(shù)接收兩個參數(shù),一個是要解析的JSON字符串,另一個是地址字符串。函數(shù)內(nèi)部使用strtok和strstr函數(shù)逐級訪問該地址,最后找到對應(yīng)的屬性值,并輸出給調(diào)用者。

對于訪問JSON屬性時未找到對應(yīng)值的情況,parseJSON函數(shù)輸出“Not Found!”。

使用C語言解析JSON地址字符串,雖然比使用完整的JSON解析庫更加靈活、精簡,但是需要手動解析,邏輯較為繁瑣,請根據(jù)實際需求選擇。