C語言中使用JSON序列化字符串是非常常見的需求,通常我們需要將JSON字符串轉化為數組來進行數據的操作。下面是一個簡單的示例。
#include <stdio.h> #include <cjson/cJSON.h> void parseJsonArray(cJSON* root) { cJSON* item = NULL; int arraySize = cJSON_GetArraySize(root); for (int i = 0; i< arraySize; i++) { item = cJSON_GetArrayItem(root, i); if (item->type == cJSON_String) { printf("value: %s\n", item->valuestring); } } } int main(int argc, char **argv) { const char* jsonStr = "[\"value1\", \"value2\", \"value3\"]"; cJSON* json = cJSON_Parse(jsonStr); if (!json) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return -1; } parseJsonArray(json); cJSON_Delete(json); return 0; }
代碼解釋如下:
- 第2-10行:定義了一個parseJsonArray函數,它接收一個cJSON對象,并遍歷對象中的元素,如果元素是cJSON_String類型,則輸出它的值。
- 第12-26行:主函數中,定義了一個jsonStr變量,它是一個JSON數組的字符串表示,然后使用cJSON_Parse函數將其解析為一個cJSON對象。
- 第28行:如果解析失敗,則輸出錯誤信息。
- 第30行:調用parseJsonArray函數來遍歷解析出來的cJSON對象。
- 第32行:刪除解析出來的cJSON對象。
總的來說,使用C語言解析JSON字符串是一件比較復雜的任務,但是cJSON庫可以幫助我們更快捷、高效地實現這個過程。
上一篇mysql讀取30t數據
下一篇python 屬性的類型