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

c json數據解析實例

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

C語言是一種面向過程的編程語言,而JSON是一種數據交換格式。對于C語言開發者來說,如何解析JSON數據是一個重要的問題。在本文中,我們將學習如何使用C語言解析JSON數據,并給出一個實例代碼。

#include#include#include#include "cJSON.h" // cjson庫頭文件
int main()
{
char *json_str = "{\"name\":\"john\",\"age\":30,\"hobbies\":[\"swimming\",\"reading\"]}";
cJSON *root = cJSON_Parse(json_str); //解析JSON字符串
if (root == NULL) {
printf("JSON解析失敗\n");
return 1;
}
cJSON *name = cJSON_GetObjectItem(root, "name"); //獲取name屬性
cJSON *age = cJSON_GetObjectItem(root, "age"); //獲取age屬性
cJSON *hobbies = cJSON_GetObjectItem(root, "hobbies"); //獲取hobbies屬性
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
int hobbies_size = cJSON_GetArraySize(hobbies); //獲取hobbies屬性的個數
printf("hobbies: ");
for (int i = 0; i< hobbies_size; i++) {
cJSON *hobby = cJSON_GetArrayItem(hobbies, i); //獲取hobbies屬性的數組元素
if (i == hobbies_size - 1) {
printf("%s", hobby->valuestring);
} else {
printf("%s, ", hobby->valuestring);
}
}
cJSON_Delete(root); //釋放cjson對象內存
return 0;
}

在本例中,我們首先定義了一個JSON字符串。該字符串表示一個人的信息,包括姓名、年齡和愛好。然后,我們使用cJSON_Parse()函數將該字符串解析成一個cJSON對象。然后,我們從該對象中獲取name、age和hobbies三個屬性,并輸出它們的值。其中,hobbies屬性是一個數組,因此我們需要獲取數組的大小,并逐個輸出每個元素的值。最后,我們釋放cJSON對象的內存。

此外,我們需要注意一點,即我們使用了第三方庫cjson,該庫提供了解析JSON數據的函數。因此,在使用本例代碼時,需要將cJSON.h文件引入項目,并在編譯時鏈接libcjson。