c語言作為一門編程語言,不僅支持面向過程的編程模式,也支持面向對象的編程模式。在使用復雜對象時,我們需要將其轉換為json格式進行傳輸或存儲,這就需要使用相關的c語言JSON庫。
#include "json.h" #includetypedef struct { int id; char name[20]; float grade; } Student; int main() { Student s = {1, "Jack", 89.5}; cJSON* root = cJSON_CreateObject(); cJSON_AddNumberToObject(root, "id", s.id); cJSON_AddStringToObject(root, "name", s.name); cJSON* grades = cJSON_CreateArray(); cJSON_AddNumberToObject(grades, "", s.grade); cJSON_AddItemToObject(root, "grades", grades); char* json_str = cJSON_Print(root); printf("%s\n", json_str); free(json_str); cJSON_Delete(root); return 0; }
上述代碼中,我們定義了一個Student結構體,并使用cJSON庫將其轉換為json格式的字符串。
首先,我們需要定義一個cJSON對象root作為最外層對象,并使用cJSON_CreateObject()函數創建該對象;
接著,我們使用cJSON_Add*ToObject()函數將Student結構體中的id、name屬性添加到root對象中;
我們使用cJSON_CreateArray()函數創建一個數組grades,并使用cJSON_AddNumberToObject()/cJSON_AddStringToObject()等函數將數組元素添加到grades中;
最后,我們使用cJSON_Print()函數將cJSON對象轉換為json格式字符串,使用printf函數打印該字符串。
最后,我們需要注意:使用完cJSON對象后,需要使用cJSON_Delete()函數釋放內存。
上一篇c 字符串 轉 json
下一篇mysql取交集并去重