C 語言中,使用 JSON 發消息非常常見。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易于閱讀和編寫。JSON 將數據表示為鍵值對的集合,與 C 語言中的結構體和數組類似。
要在 C 語言中發送 JSON 消息,需要使用一個 JSON 庫。常見的 JSON 庫包括 cJSON、jansson 和 Jsmn。
#include <stdio.h> #include <cJSON.h> int main() { // 創建一個 JSON 對象 cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Alice"); cJSON_AddNumberToObject(root, "age", 25); // 將 JSON 對象轉化為字符串 char *json_str = cJSON_Print(root); // 在這里將 json_str 發送出去 // 釋放內存 cJSON_Delete(root); free(json_str); return 0; }
在上面的代碼中,我們首先創建了一個 JSON 對象。使用 cJSON_CreateObject 函數創建一個空的 JSON 對象,然后使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 函數向對象中添加 key-value 對。接著,我們將 JSON 對象轉化為字符串,使用 cJSON_Print 函數。最后,我們將該字符串發送出去,并釋放內存。
除了發送 JSON 消息,我們還需要解析接收到的 JSON 消息。解析 JSON 消息也十分容易,只需要使用相應的 JSON 庫就行。
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{ \"name\": \"Alice\", \"age\": 25 }"; // 將字符串解析為 JSON 對象 cJSON *root = cJSON_Parse(json_str); // 從 JSON 對象中獲取值 char *name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; printf("name: %s, age: %d\n", name, age); // 釋放內存 cJSON_Delete(root); return 0; }
在上面的代碼中,我們首先定義一個字符串 json_str,其中包含一個 JSON 對象;然后,使用 cJSON_Parse 函數將該字符串解析為 JSON 對象。接著,使用 cJSON_GetObjectItem 函數從 JSON 對象中獲取值。最后,我們打印出 name 和 age,并釋放內存。
上一篇python 自定義錯誤
下一篇vue向后臺請求