在C語言中,我們通常需要將字符串轉換成JSON格式,以便進行進一步的數據處理。下面是一段簡單的代碼示例,展示如何將一個字符串轉換成JSON格式:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { const char *str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; json_error_t error; json_t *root = json_loads(str, JSON_DECODE_ANY, &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")); const char *city = json_string_value(json_object_get(root, "city")); printf("姓名: %s\n年齡: %d\n城市: %s\n", name, age, city); json_decref(root); return 0; }
在上述代碼中,我們使用了jansson庫來完成字符串的JSON格式轉換。在main函數中,我們首先定義一個字符串變量,該變量表示了一個JSON對象。接著,我們使用json_loads函數將這個字符串轉換成一個json_t類型的根對象(root)。如果轉換失敗,我們就會得到一個錯誤信息。
接下來,我們從根對象中獲取數據。可以看到,我們使用json_object_get函數獲取JSON對象的屬性。它返回一個json_t類型的值,我們可以通過json_string_value和json_integer_value分別獲得屬性的字符串值和整型值。最后,我們將獲取到的數據打印出來。
最后,我們需要注意的是,為了避免內存泄漏,我們應該在使用完root對象后,調用json_decref函數來釋放它占用的內存。