欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 中json字符串轉對象

謝彥文2年前8瀏覽0評論

在C語言中,使用json字符串來表示數據是很常見的。然而,處理這些json字符串并不是很容易。因此,需要使用一些工具來將json字符串轉換成可以在C程序中使用的對象。

在C語言中,使用第三方的json庫可以輕松地完成這個任務。其中一個很受歡迎的json庫是cJSON。它是由Dave Gamble開發的,并且允許我們將json字符串解析為C對象,比如數組和結構體。

下面是一個示例代碼,它演示了如何使用cJSON庫將json字符串轉換為C對象:

#include <cjson/cJSON.h>
int main()
{
char *json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON *root = cJSON_Parse(json);
if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
} else {
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *city = cJSON_GetObjectItem(root, "city");
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("City: %s\n", city->valuestring);
}
cJSON_Delete(root);
return 0;
}

在上述示例中,我們首先創建了一個json字符串,并將其作為參數傳遞給cJSON_Parse()函數。該函數將返回解析后的CJSON對象(即root)。如果解析失敗,它將返回NULL,并將錯誤信息存儲在cJSON_GetErrorPtr()函數中。

在我們得到根對象后,我們可以使用cJSON_GetObjectItem()函數從中獲取子項。該函數需要傳遞的參數是一個cJSON對象和一個表示子項名稱的字符串。在上述示例中,我們使用該函數從根對象中獲取了“name”、“age”和“city”子項。

接下來,我們可以從每個子項中獲取值。使用valuestring和valueint屬性從cJSON對象中獲取值。在上述示例中,我們使用這些屬性從每個子項中獲取值,并將其打印出來。

最后,我們需要使用cJSON_Delete()函數來刪除我們創建的cJSON對象。