在C語言中,使用JSON作為數據傳遞類型是非常常見的。JSON是一種輕量級的數據交換格式,它可以被各種編程語言解析和使用。在使用JSON傳遞數據時,一般需要使用第三方庫來進行解析和生成。
#include <stdio.h> #include <jansson.h> int main() { json_t *root; json_error_t error; root = json_loads("{\"name\":\"Tom\", \"age\":25}", 0, &error); if(!root){ printf("JSON格式錯誤: %s\n", error.text); return 1; } const char *name = json_string_value(json_object_get(root, "name")); int age = json_integer_value(json_object_get(root, "age")); printf("name: %s age: %d\n", name, age); json_decref(root); return 0; }
在上面的代碼中,我們使用了jansson庫來解析JSON字符串。首先,我們使用json_loads函數將JSON字符串解析為JSON對象。如果JSON字符串不合法,json_loads函數會返回NULL,并且在json_error_t結構體中包含錯誤信息。我們可以通過從錯誤結構體中獲取text字段來獲取錯誤信息。
解析后,我們可以使用json_object_get函數來獲取JSON對象中的特定字段。在這個例子中,我們獲取了"name"和"age"字段,并將其解析為一個字符串和整數。最后,我們使用json_decref來釋放JSON對象。
在使用JSON傳遞數據時,需要確保生成的JSON字符串和解析的JSON字符串格式相同。因此,在編寫代碼時,應該遵守某種協議或標準,確保生成和解析的JSON字符串格式一致。