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

c 生成解析json字符串

老白2年前9瀏覽0評論

JSON是一種輕量級的數據交換格式,被廣泛應用于各個領域。在C語言中如何生成和解析JSON字符串呢?下面我們一起來了解。

首先,我們需要安裝cJSON庫,它是一個輕量級的JSON解析庫,提供了一套簡單易用的API,支持生成和解析JSON字符串。

接下來我們看看如何生成JSON字符串:

#include <stdio.h>
#include <cJSON.h>
int main(){
cJSON *root, *array, *item;
char *str;
// 創建JSON對象
root = cJSON_CreateObject();
// 添加一個字符串類型的鍵值對
cJSON_AddStringToObject(root, "name", "張三");
// 添加一個整型類型的鍵值對
cJSON_AddNumberToObject(root, "age", 25);
// 添加一個數組類型的鍵值對
array = cJSON_AddArrayToObject(root, "hobbies");
cJSON_AddItemToArray(array, cJSON_CreateString("coding"));
cJSON_AddItemToArray(array, cJSON_CreateString("reading"));
// 生成JSON字符串
str = cJSON_Print(root);
// 打印JSON字符串
printf("%s\n", str);
// 釋放內存
cJSON_Delete(root);
free(str);
return 0;
}

首先,我們創建了一個名為root的JSON對象。然后,我們使用cJSON_AddStringToObject()函數向root對象添加一個name字段,值為“張三”;使用cJSON_AddNumberToObject()函數向root對象添加一個age字段,值為25;使用cJSON_AddArrayToObject()函數向root對象添加一個hobbies字段,值為一個數組。數組中包含兩個字符串類型的元素:“coding”和“reading”。最后,我們使用cJSON_Print()函數將root對象轉換成JSON字符串,并使用printf()函數打印JSON字符串。

解析JSON字符串也非常簡單:

#include <stdio.h>
#include <cJSON.h>
int main(){
cJSON *root, *item;
char *str = "{\"name\":\"張三\",\"age\":25,\"hobbies\":[\"coding\",\"reading\"]}";
// 解析JSON字符串
root = cJSON_Parse(str);
// 獲取name字段的值
item = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", item->valuestring);
// 獲取age字段的值
item = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", item->valueint);
// 獲取hobbies數組中的元素
item = cJSON_GetObjectItem(root, "hobbies");
cJSON_ArrayForEach(item, item){
printf("%s ", item->valuestring);
}
// 釋放內存
cJSON_Delete(root);
return 0;
}

這里我們使用了cJSON_Parse()函數將一個JSON字符串轉換成JSON對象root。接下來,我們使用cJSON_GetObjectItem()函數獲取root對象中name、age和hobbies字段的值。其中,cJSON_StringValue()函數用于獲取字符串類型的值,cJSON_GetArrayItem()函數用于獲取數組中指定位置的元素,cJSON_ArrayForEach()函數用于遍歷整個數組。最后,我們使用cJSON_Delete()函數釋放內存。

至此,我們已經了解了C語言生成和解析JSON字符串的基本方法。