在很多Web應用程序中,常常需要將C字符串轉成JSON字符串數組對象,以便存儲或傳遞數據。下面介紹如何通過C語言實現這一過程。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 1024 int main() { char* str = "name:John,age:30,city:New York"; char* token = strtok(str, ","); char* name = NULL; char* value = NULL; char* json = (char*)malloc(MAX_SIZE); strcat(json, "["); while (token != NULL) { name = strtok(token, ":"); value = strtok(NULL, ":"); strcat(json, "{\""); strcat(json, name); strcat(json, "\":\""); strcat(json, value); strcat(json, "\"},"); token = strtok(NULL, ","); } int json_len = strlen(json); json[json_len - 1] = ']'; printf("%s\n", json); free(json); return 0; }
這段代碼中我們先定義了一個字符串 str,它包含多個 key-value 對,這些對以逗號分隔。比如:name:John,age:30,city:New York。
接著,我們使用 strtok 函數將字符串 str 拆分成單個的 key-value 對。在每次循環中,我們先找到當前的 key 和 value,然后將它們組合成一個 JSON 對象。最后,我們將所有的 JSON 對象組合成一個 JSON 數組。
需要注意的是,我們在每個 JSON 對象的首位加上了 "{" 和 "}",并且在每個 key 和 value 之間加上了 ":"。這樣就能滿足 JSON 格式。
在程序的最后,我們將 JSON 數組的末尾的逗號替換成了 "]",這樣就得到了完整的 JSON 字符串數組對象。最后,我們使用 printf 函數將 JSON 字符串數組對象打印出來。