在C語言中獲取POST的JSON,需要使用一些庫函數來完成。其中,我們主要使用cJSON庫來完成JSON數據的解析和生成。
#include <cJSON.h> // 引入cJSON庫頭文件
#include <stdio.h>
int main() {
// 獲取POST的JSON
const char *postJson = "{\"name\":\"張三\", \"age\":18}";
// 解析POST的JSON
cJSON *root = cJSON_Parse(postJson);
// 判斷JSON是否解析成功
if (NULL == root) {
printf("解析JSON失敗!\n");
return -1;
}
// 獲取JSON中的字段
cJSON *name = cJSON_GetObjectItem(root, "name");
if (NULL == name) {
printf("獲取名稱失敗!\n");
return -2;
}
printf("名稱:%s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(root, "age");
if (NULL == age) {
printf("獲取年齡失敗!\n");
return -3;
}
printf("年齡:%d\n", age->valueint);
// 生成JSON
cJSON *newJson = cJSON_CreateObject(); // 創建JSON對象
if (NULL == newJson) {
printf("創建JSON失敗!\n");
return -4;
}
// 添加字段
cJSON_AddItemToObject(newJson, "name", cJSON_CreateString("李四"));
cJSON_AddItemToObject(newJson, "age", cJSON_CreateNumber(20));
// 將JSON轉換為字符串
char *newJsonString = cJSON_Print(newJson);
printf("新的JSON:%s\n", newJsonString);
// 釋放內存
cJSON_Delete(root);
cJSON_Delete(newJson);
free(newJsonString);
return 0;
}
以上代碼演示了如何使用cJSON庫從POST的JSON中獲取數據,并生成新的JSON數據。