在C語言中,有時需要將數(shù)據(jù)格式化成json數(shù)組的形式進行傳輸或保存。這就需要使用json序列化技術了。下面介紹一種使用開源庫cJSON進行json數(shù)組序列化的方法。
#include <stdio.h>
#include <stdlib.h>
#include <cJSON.h>
int main(void) {
cJSON *root = cJSON_CreateArray(); // 創(chuàng)建json數(shù)組
cJSON *item1 = cJSON_CreateNumber(10); // 創(chuàng)建數(shù)字類型數(shù)據(jù)
cJSON *item2 = cJSON_CreateString("Hello World!"); // 創(chuàng)建字符串類型數(shù)據(jù)
cJSON_AddItemToArray(root, item1); // 將數(shù)字類型數(shù)據(jù)添加到數(shù)組中
cJSON_AddItemToArray(root, item2); // 將字符串類型數(shù)據(jù)添加到數(shù)組中
char *jsonstr = cJSON_Print(root); // 將json數(shù)據(jù)格式化成字符串
printf("%s\n", jsonstr); // 輸出字符串
free(jsonstr);
cJSON_Delete(root); // 釋放內(nèi)存
return 0;
}
在上面的代碼片段中,我們使用cJSON創(chuàng)建一個json數(shù)組并添加兩個值,一個是數(shù)字類型,一個是字符串類型。將這個數(shù)組序列化成json字符串并輸出。最后進行內(nèi)存釋放。運行上述代碼會得到類似下面的結(jié)果:
[
10,
"Hello World!"
]
這個結(jié)果是一個符合json數(shù)據(jù)格式的數(shù)組,用于傳輸和存儲都非常方便。