在C語言中,要傳入JSON數據,需要使用一個專門的庫或者工具來處理。
其中,一個常用的庫是cJSON。cJSON是一個快速的JSON解析器和生成器,它支持各種不同數據類型的JSON數據(如字符串、數字、布爾值、數組和對象等)。下面是一個例子:
#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
char *json_str = "{\"name\":\"Tom\",\"age\":18}";
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;
}
printf("'%s': '%s'\n", "name", cJSON_GetObjectItemCaseSensitive(json, "name")->valuestring);
printf("'%s': %d\n", "age", cJSON_GetObjectItemCaseSensitive(json, "age")->valueint);
cJSON_Delete(json);
return 0;
}
在上面的代碼中,我們首先聲明了一個JSON字符串(json_str),然后使用cJSON_Parse()將字符串解析為JSON結構體(json)。如果解析失敗,則可以使用cJSON_GetErrorPtr()獲取錯誤的指針,以便我們可以查看錯誤。
之后,我們使用cJSON_GetObjectItemCaseSensitive()獲取JSON結構體中的屬性,并輸出到控制臺。最后,我們使用cJSON_Delete()釋放結果,以避免內存泄漏。
這是一個非常簡單的例子,但是它可以讓我們了解如何使用cJSON處理JSON數據。在實際開發中,我們可以將cJSON作為庫文件引入我們的工程中,并使用它來解析和生成JSON數據。