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

c 中json解析json數據

錢浩然1年前10瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于web應用程序之間的數據傳輸。在C語言中,可以使用第三方庫來解析JSON數據,其中比較常用的有cJSON。

接下來我們將使用cJSON來解析下面的JSON數據:

{
"name": "小明",
"age": 18,
"school": {
"name": "清華大學",
"address": "北京市海淀區"
},
"hobby": ["籃球", "游泳", "編程"]
}

首先,我們需要將JSON數據解析為一個cJSON對象。可以使用cJSON_Parse函數來實現:

cJSON* json = cJSON_Parse(json_data);
if (json == NULL)
{
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
}

其中,json_data是要解析的JSON數據。如果解析成功,則cJSON_Parse函數將返回一個cJSON對象,否則返回NULL。

接下來,可以通過cJSON_GetObjectItem函數獲取JSONObject中的屬性值:

char* name = cJSON_GetObjectItem(json, "name")->valuestring;
int age = cJSON_GetObjectItem(json, "age")->valueint;
cJSON* school = cJSON_GetObjectItem(json, "school");
char* school_name = cJSON_GetObjectItem(school, "name")->valuestring;
char* school_address = cJSON_GetObjectItem(school, "address")->valuestring;
cJSON* hobby = cJSON_GetObjectItem(json, "hobby");
int hobby_num = cJSON_GetArraySize(hobby);
for (int i = 0; i< hobby_num; i++)
{
char* hobby_item = cJSON_GetArrayItem(hobby, i)->valuestring;
}

上述代碼中,通過cJSON_GetObjectItem函數獲取cJSON對象中的屬性值,并用不同的類型(如valuestring、valueint)來獲取不同類型的屬性值。

另外,通過cJSON_GetArraySize和cJSON_GetArrayItem函數,可以獲取JSONArray的長度和元素值。

最后,需要注意釋放cJSON對象的內存空間:

cJSON_Delete(json);

以上就是在C語言中使用cJSON解析JSON數據的相關介紹,希望能對您有所幫助。