在C語言中,字典類型通常使用結構體表示。將這樣的字典類型轉換成JSON格式可以方便地進行數(shù)據(jù)交換。下面我們來看一下具體的實現(xiàn)過程。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <json-c/json.h> // 聲明字典數(shù)據(jù)類型 struct dict { char name[20]; int age; char gender; }; int main(void) { struct dict person = {"Tom", 20, 'M'}; // 創(chuàng)建JSON對象 struct json_object *json = json_object_new_object(); // 添加鍵值對 json_object_object_add(json, "name", json_object_new_string(person.name)); json_object_object_add(json, "age", json_object_new_int(person.age)); json_object_object_add(json, "gender", json_object_new_string_len(&person.gender, 1)); // 注意:這里需要將char類型轉換成字符串類型 // 將JSON對象轉換成字符串 const char *json_str = json_object_to_json_string(json); // 輸出轉換后的JSON字符串 printf("JSON String: %s\n", json_str); // 釋放JSON對象內(nèi)存 json_object_put(json); return 0; }
在代碼中,我們首先聲明了一個名為dict的結構體,用來表示一個字典類型。隨后,我們定義了一個person變量來存儲一個具體的字典數(shù)據(jù)。接著,我們使用json-c庫提供的API,首先創(chuàng)建了一個JSON對象,然后添加了三個鍵值對到這個對象中。最后,我們將JSON對象轉換成字符串,并輸出轉換后的結果。
需要注意的是,在將gender字段添加到JSON對象中時,我們需要將char類型的gender字段轉換成字符串類型。這里我們使用了json-c庫提供的json_object_new_string_len()函數(shù)來創(chuàng)建一個1字節(jié)長度的字符串。
上一篇vue分類多選組件