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

c 如何接受傳來的json

林雅南2年前7瀏覽0評論

在使用C語言接收J(rèn)SON數(shù)據(jù)時,我們需要使用第三方庫來處理JSON數(shù)據(jù)。其中,cJSON庫是一種輕量級的JSON解析庫,非常方便實用。下面是一個簡單的示例代碼,演示如何使用cJSON庫來接收J(rèn)SON數(shù)據(jù):

#include <stdio.h>
#include <cJSON.h>
int main()
{
char* json_str = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }";
cJSON* json = cJSON_Parse(json_str);
if (json == NULL)
{
const char* error_ptr = cJSON_GetErrorPtr();
if (error_ptr != NULL)
{
printf("Error before: %s\n", error_ptr);
}
return 1;
}
const cJSON* name = cJSON_GetObjectItemCaseSensitive(json, "name");
if (cJSON_IsString(name) && (name->valuestring != NULL))
{
printf("Name: %s\n", name->valuestring);
}
const cJSON* age = cJSON_GetObjectItemCaseSensitive(json, "age");
if (cJSON_IsNumber(age))
{
printf("Age: %d\n", age->valueint);
}
const cJSON* city = cJSON_GetObjectItemCaseSensitive(json, "city");
if (cJSON_IsString(city) && (city->valuestring != NULL))
{
printf("City: %s\n", city->valuestring);
}
cJSON_Delete(json);
return 0;
}

該示例代碼接收J(rèn)SON字符串并解析它,然后獲取其中的每個字段并將其輸出到控制臺上。在使用cJSON庫時,我們需要使用cJSON_Parse()函數(shù)來解析JSON字符串,使用cJSON_GetObjectItemCaseSensitive()函數(shù)來獲取JSON對象中的特定元素,使用cJSON_IsString()和cJSON_IsNumber()函數(shù)來驗證元素的類型,以及使用cJSON_Delete()函數(shù)清空J(rèn)SON對象。