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

c json 獲取節點

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

在C語言中使用Json格式的數據是很常見的,比如解析網絡請求返回的Json數據,或者發送Json數據到服務器。在處理Json數據的過程中,通常需要獲取Json的節點屬性,下面我們來看一下C語言中如何獲取Json節點。

//Json數據示例
{
"name": "小明",
"age": 18,
"isStudent": true,
"courses": ["語文", "數學", "英語"],
"address": {
"province": "廣東",
"city": "深圳",
"district": "南山區"
}
}
//獲取Json節點屬性
#include "cJSON.h"
int main(int argc, char const *argv[])
{
char *jsonStr = "{\"name\":\"小明\",\"age\":18,\"isStudent\":true,\"courses\":[\"語文\",\"數學\",\"英語\"],\"address\":{\"province\":\"廣東\",\"city\":\"深圳\",\"district\":\"南山區\"}}";
cJSON *root = cJSON_Parse(jsonStr); //將Json字符串轉換為Json對象
int age = cJSON_GetObjectItem(root, "age")->valueint; //獲取整型屬性
printf("age: %d\n", age);
bool isStudent = cJSON_GetObjectItem(root, "isStudent")->valueint; //獲取布爾型屬性
printf("isStudent: %d\n", isStudent);
cJSON *courses = cJSON_GetObjectItem(root, "courses"); //獲取數組屬性
int arraySize = cJSON_GetArraySize(courses);
printf("courses: ");
for (int i = 0; i< arraySize; ++i)
{
cJSON *course = cJSON_GetArrayItem(courses, i);
printf("%s ", course->valuestring);
}
printf("\n");
cJSON *address = cJSON_GetObjectItem(root, "address"); //獲取Json對象屬性
char *province = cJSON_GetObjectItem(address, "province")->valuestring;
char *city = cJSON_GetObjectItem(address, "city")->valuestring;
char *district = cJSON_GetObjectItem(address, "district")->valuestring;
printf("address: %s %s %s\n", province, city, district);
cJSON_Delete(root); //釋放Json對象的內存
return 0;
}

以上代碼可以獲取Json數據中的不同類型的屬性,如整型、布爾型、數組、Json對象等屬性,并且可以通過cJSON庫提供的不同方法進行操作。需要注意的是,獲取Json屬性時需要確保屬性存在,否則會導致程序崩潰。