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

c json字符串取值

江奕云2年前7瀏覽0評論

JSON(JavaScript Object Notation)是一種用于數據交換格式的輕量級語言。在使用C語言解析和操作JSON字符串時,可以使用一些開源的庫,如Jansson、cJSON、cJSON++等。這里將簡要介紹使用cJSON庫進行JSON字符串取值。

#include <stdio.h>
#include <cJSON.h>
int main()
{
const char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL)
{
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
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對象是一個樹形結構,可以通過調用cJSON_GetObjectItem()函數獲取子節點。該函數的第二個參數是要獲取子節點的名稱,返回一個指向子節點的指針。

cJSON節點的類型由valueint、valuestring、valuebool等成員決定,可以使用相應的成員獲取節點的值。在使用完cJSON對象后,應使用cJSON_Delete()函數釋放對象占用的內存。

通過這種方式,可以方便地在C語言中解析JSON字符串,提取需要的信息。如果JSON字符串比較復雜,建議使用cJSON庫提供的其他函數和結構體進行更方便的操作。