cjson是一個輕量級的C語言JSON解析庫。它可以將C語言中的結構體(struct)轉換為JSON格式的字符串,也可以將JSON字符串解析成C語言中的結構體。本文將介紹cjson將結構體轉換為JSON字符串的使用方法。
首先需要在代碼中使用cjson庫,可以在項目中添加cJSON.c和cJSON.h文件,或者使用其他方法導入該庫。
#include#include #include #include "cjson.h"
定義一個結構體,例如:
typedef struct { int id; char name[20]; float score; } Student;
接下來定義一個Student結構體的實例,并賦值:
Student s; s.id = 1; strcpy(s.name, "Tom"); s.score = 90.5;
調用cJSON庫的接口,將Student結構體轉換為JSON格式字符串:
cJSON *json = cJSON_CreateObject(); cJSON_AddNumberToObject(json, "id", s.id); cJSON_AddStringToObject(json, "name", s.name); cJSON_AddNumberToObject(json, "score", s.score); char* str = cJSON_Print(json); cJSON_Delete(json);
其中,json是一個cJSON結構體指針,通過cJSON_CreateObject()函數創建。該函數會返回一個cJSON結構體指針,表示創建一個JSON對象(Object)。cJSON_AddNumberToObject()函數可以將一個數值型變量添加到JSON對象中,cJSON_AddStringToObject()函數可以將一個字符串添加到JSON對象中。最后調用cJSON_Print()函數將cJSON結構體指針轉換為JSON格式的字符串,返回值即為轉換后的字符串。最后使用cJSON_Delete()函數刪除JSON對象。
最終生成的JSON字符串如下:
{ "id": 1, "name": "Tom", "score": 90.5 }
可以看到,結構體中的每個成員變量都被轉換為了JSON對象中的一個鍵值對。使用cjson將struct轉換為JSON字符串是非常方便的操作,可以方便地為數據進行序列化和反序列化。
下一篇vue 彈窗 不在提醒