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

c 接口返回json

劉姿婷1年前10瀏覽0評論

在c語言程序中,常常需要將數據以json格式返回給接口請求方。而如何實現c程序返回json數據呢?這里推薦一個非常方便的庫——cJSON。

cJSON是一個輕量級的JSON解析器和生成器,可以很方便地將c語言數據轉換為json格式,也可以將json格式數據轉換為c語言數據。

#include <stdio.h>
#include <stdlib.h>
#include <cjson/cJSON.h>
int main() 
{
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "張三");
cJSON_AddNumberToObject(root, "age", 20);
cJSON_AddItemToObject(root, "hobby", cJSON_CreateArray());
cJSON_AddStringToArray(cJSON_GetObjectItem(root, "hobby"), "籃球");
cJSON_AddStringToArray(cJSON_GetObjectItem(root, "hobby"), "游泳");
char *json_str = cJSON_Print(root);
printf("%s\n", json_str);
cJSON_Delete(root);
return 0;
}

上述代碼中,我們使用cJSON庫創建了一個json對象root,并向該對象中添加了三個屬性,分別是一個name字符串、一個age數字和一個hobby數組。最后調用cJSON_Print函數將該對象轉換為json格式的字符串輸出。

當然,我們也可以將從請求中獲取到的json格式字符串轉換為c語言數據:

char *json_str = "{\"name\":\"張三\",\"age\":20,\"hobby\":[\"籃球\",\"游泳\"]}";
cJSON *root = cJSON_Parse(json_str);
printf("%s\n", cJSON_GetObjectItem(root, "name")->valuestring);
printf("%d\n", cJSON_GetObjectItem(root, "age")->valueint);
int hobby_size = cJSON_GetArraySize(cJSON_GetObjectItem(root, "hobby"));
for (int i = 0; i < hobby_size; i++) 
{
printf("%s\n", cJSON_GetArrayItem(cJSON_GetObjectItem(root, "hobby"), i)->valuestring);
}
cJSON_Delete(root);

以上代碼中,我們將一個json格式的字符串手動編寫并賦值給json_str變量,然后使用cJSON_Parse函數將其解析為一個cJSON對象root,并從該對象中獲取name、age和hobby屬性的值,并輸出到控制臺上。

總的來說,cJSON是一個十分方便的json解析和生成庫,在c語言程序中經常被用來處理json數據。希望讀者在開發c語言程序的時候,也能好好利用這個強大的工具。