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

c 怎么解析json數據

錢良釵1年前8瀏覽0評論

在C語言中,解析JSON數據需要使用第三方庫,常見的庫有兩種:cJSON和jansson。

下面以cJSON為例介紹如何使用。

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
char *json_str = "{\"name\":\"Alice\",\"age\":20}";
cJSON *json = cJSON_Parse(json_str); // 解析JSON字符串
if (json != NULL) {
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); // 獲取字符串類型的值
cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); // 獲取數值類型的值
if (cJSON_IsString(name) && cJSON_IsNumber(age)) { // 判斷類型是否正確
printf("%s is %d years old.\n", name->valuestring, age->valueint); // 打印結果
}
cJSON_Delete(json); // 釋放內存
} else {
printf("JSON string is invalid.\n");
}
return 0;
}

以上代碼解析了一個JSON對象,取出其中的name和age字段,分別打印出來。其中例子中的JSON字符串為:

{
"name": "Alice",
"age": 20
}

函數cJSON_Parse用于解析JSON字符串,返回一個指向cJSON結構體的指針。函數cJSON_GetObjectItemCaseSensitive用于獲取JSON對象字段的值,第一個參數為JSON對象,第二個參數為字段名。在獲取字段值的時候需要判斷類型是否正確,函數cJSON_IsString和cJSON_IsNumber用于判斷是否為字符串類型和數值類型。最后需要使用cJSON_Delete釋放內存。