在C語言的開發過程中,經常需要將字符串轉換成JSON格式的數據,這時就需要借助于C的字符串處理函數以及JSON庫來完成這個任務。下面就介紹一個C String轉JSON的工具類。
/************************************ * c_string2json.h * @brief: C String 轉 JSON 工具類 ************************************/ #ifndef C_STRING2JSON_H #define C_STRING2JSON_H #include#include #include "cjson.h" /** * @brief 將C String數據轉化為JSON格式數據 * * @param[in] c_string C String * @param[in] length C String長度 * * @return JSON Object指針,NULL表示失敗 */ cJSON* c_string_to_json(const char* c_string, uint32_t length); #endif /* C_STRING2JSON_H */
這是一個c_string2json.h頭文件,其中定義了一個將C String數據轉化為JSON格式數據的方法,返回一個JSON Object指針。它包含了兩個參數:c_string是C語言字符串,length代表字符串的長度。
/************************************ * c_string2json.c * @brief: C String 轉 JSON 工具類 ************************************/ #include "c_string2json.h" #includecJSON* c_string_to_json(const char* c_string, uint32_t length) { if(c_string == NULL || length<= 0) { return NULL; } cJSON* root = cJSON_CreateObject(); if(root == NULL) { return NULL; } cJSON_AddStringToObject(root, "string", c_string); cJSON_AddNumberToObject(root, "length", length); return root; }
下面這個是c_string2json.c文件,具體實現了c_string_to_json方法。在方法中,先判斷傳入的C String數據是否為空或長度小于等于0。接著創建一個JSON Object根節點,然后將C String數據和長度作為字符串和整型分別加入到JSON Object中,最后返回此JSON Object指針。
通過這個C String 轉 JSON 工具類,我們可以實現一些簡單的JSON數據格式化,為了使代碼規范化、符合工程風格以及提高代碼可讀性,我們可以通過調用這個工具類來實現JSONObject的生成。