最近在使用C語言開發WebAPI的時候,遇到了一個問題:無法正確地接收JSON對象。
具體來說,我使用了libcurl庫從客戶端發送JSON對象到服務器端,但是服務器端無法正確地解析JSON對象。
經過查找資料和調試代碼,我發現了問題所在:C語言并沒有內置可以處理JSON數據的庫,需要手動編寫代碼進行解析。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main(void) { char *json_string = "{\"name\": \"Tom\", \"age\": 18}"; json_error_t error; json_t *json = json_loads(json_string, 0, &error); if (!json) { printf("JSON解析出錯: %s\n", error.text); return EXIT_FAILURE; } const char* name = json_string_value(json_object_get(json, "name")); int age = json_integer_value(json_object_get(json, "age")); printf("姓名:%s\n", name); printf("年齡:%d\n", age); json_decref(json); return EXIT_SUCCESS; }
以上代碼是使用jansson庫來解析JSON對象的示例代碼。需要注意的是,我們首先要使用json_loads函數將JSON字符串解析成json_t類型的對象,然后使用json_object_get函數根據key值獲取對應的value。
通過手動編寫這樣的代碼,我們就可以在C語言中處理JSON對象了。
上一篇c wcf json
下一篇es里放json格式數據