C String 是一種以字符數組形式存儲字符串的方法,在程序開發中經常被使用。而 JSON 又是一種輕量級的數據交換格式,常用于前后端交互、數據傳輸等。
在實際開發中,我們經常需要將 C String 轉換為 JSON 數組,這可以通過一些開源的庫來實現。下面給出一個示例:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main(void) { char* str = "[4,2,3,1]"; json_error_t err; json_t* arr = json_loads(str, 0, &err); int i; if(!arr) { printf("json error on line %d: %s\n", err.line, err.text); return 1; } for(i = 0; i< json_array_size(arr); i++) { json_t* elm = json_array_get(arr, i); printf("%u\n", json_integer_value(elm)); } json_decref(arr); return 0; }
這段代碼將字符串 “[4,2,3,1]” 轉換為 JSON 數組,并輸出其元素的值。其中,引入了開源的 json-c 庫,使用 json_loads() 函數將字符串轉換為 JSON 對象。這個函數的第二個參數為標志,常用的值為 0 或 JSON_ENCODE_ANY(任何類型都可以轉換)。當返回值為 NULL 時,表明轉換失敗,我們可以通過 json_error_t 結構體獲得錯誤的行號及描述信息。最后,使用 json_array_size() 和 json_array_get() 函數遍歷數組。
總之,使用 C string 轉換為 JSON 數組可以方案便捷地實現前后端串聯、數據傳輸。而 json-c 庫是一個簡潔、易用的開源庫,可以加速 json 格式的處理。