欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c json封裝類

夏志豪2年前8瀏覽0評論

在C語言中,處理JSON數據變得越來越普遍和必要。CJSON是一種輕量級的JSON庫,它能夠快速快速地處理JSON數據。本文將介紹一個CJSON的封裝類,以方便在C語言項目中使用。

typedef struct JSONObject_st JSON_Object;
typedef struct JSONArray_st JSON_Array;
typedef struct JSONPair_st JSON_Pair;
typedef struct JSONData_st JSON_Data;
struct JSONObject_st
{
int count;
JSON_Pair* pairs;
};
struct JSONArray_st
{
int count;
JSON_Data* values;
};
struct JSONPair_st
{
char* key;
JSON_Data* value;
};
enum JSONDataTypes
{
JSON_NULL,
JSON_OBJECT,
JSON_ARRAY,
JSON_STRING,
JSON_NUMBER,
JSON_BOOL
};
struct JSONData_st
{
enum JSONDataTypes type;
union
{
char* string;
double number;
JSON_Object* object;
JSON_Array* array;
int boolean;
}value;
};

JSONObject、JSONArray和JSONPair分別代表JSON中的對象、數組和鍵值對。JSONData包含了JSON中的數據類型。同時,該類還提供了一些簡便的方法來讀寫JSON數據。

JSON_Object* JSON_NewObject();
JSON_Array* JSON_NewArray();
JSON_Pair* JSON_FindPair(JSON_Object* obj, const char* key);
JSON_Data* JSON_FindData(JSON_Object* obj, const char* key);
JSON_Data* JSON_FindValue(JSON_Array* array, int i);
int JSON_GetArrayCount(JSON_Array* array);
int JSON_GetObjectCount(JSON_Object* obj);
void JSON_AddPair(JSON_Object* obj, const char* key, JSON_Data* value);
void JSON_AddString(JSON_Array* array, const char* str);
void JSON_AddNumber(JSON_Array* array, double number);
void JSON_AddBool(JSON_Array* array, int boolean);
JSON_Object* JSON_ParseObject(const char* jsonStr);
JSON_Array* JSON_ParseArray(const char* jsonStr);
char* JSON_GetString(JSON_Data* data);
double JSON_GetNumber(JSON_Data* data);
int JSON_GetBoolean(JSON_Data* data);

JSON_NewObject和JSON_NewArray分別用于創建JSONObject和JSONArray類型的對象。JSON_FindPair和JSON_FindData用于找到JSONObject中指定的鍵值對。JSON_FindValue用于找到JSONArray中指定索引位置的值。JSON_GetArrayCount和JSON_GetObjectCount用于獲取JSONArray和JSONObject的長度。JSON_AddPair用于添加JSONObject中的鍵值對,另有JSON_AddString、JSON_AddNumber和JSON_AddBool用于向JSONArray中添加具體數據類型的元素。JSON_ParseObject和JSON_ParseArray分別用于解析JSON字符串返回對應的類型。JSON_GetString、JSON_GetNumber和JSON_GetBoolean用于獲取JSONData中的具體值。

使用該封裝類,我們可以方便地在C語言中讀寫JSON數據。雖然C語言本身不適合處理JSON數據,但使用該封裝類可以大大簡化處理JSON數據的工作。