在C語言中轉換JSON格式是一件相對復雜的任務。JSON是一種輕量級的數據交換格式,并流行于網絡數據傳輸。使用C語言編寫JSON轉換程序需要使用特定的庫才能正確解析JSON數據。
#include <stdio.h>
#include <jansson.h>
int main() {
const char *json_string = "{\"name\": \"Alice\", \"age\": 25}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if(!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, 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\nAge: %d\n", name, age);
json_decref(root);
return 0;
}
上面的程序使用了jansson庫來解析JSON數據。庫中的json_t結構體可以儲存JSON對象的鍵值對。json_loads函數可以將JSON字符串轉換為json_t結構體。
通過json_object_get函數,可以通過鍵名獲取json_t結構體中的值。json_string_value函數可以將json_t結構體中的字符串類型值轉換為C語言中的字符串。同樣的,json_integer_value函數可以將json_t結構體中的整型類型值轉換為C語言中的整型。
在程序末尾,調用json_decref函數可以釋放內存。它在程序結束時自動執行,但顯式調用可以提高程序的性能。