在C語(yǔ)言中,對(duì)于JSON數(shù)據(jù)的處理需要借助第三方庫(kù)。而常用的JSON解析庫(kù)則是 cJSON。
cJSON可以將JSON數(shù)據(jù)轉(zhuǎn)化為C語(yǔ)言中的數(shù)據(jù)類型,例如int、double、string、array等數(shù)據(jù)類型。其中,將JSON數(shù)組轉(zhuǎn)化為C語(yǔ)言中的數(shù)組可以使用cJSON_GetArraySize()和cJSON_GetArrayItem()方法。
#include <stdio.h>
#include <cJSON.h>
int main() {
char *json = "[1, 2, 3, 4, 5]";
cJSON *root = cJSON_Parse(json);
int size = cJSON_GetArraySize(root);
int arr[size];
for(int i = 0; i< size; i++) {
cJSON *item = cJSON_GetArrayItem(root, i);
arr[i] = item->valueint;
printf("%d ", arr[i]);
}
cJSON_Delete(root);
return 0;
}
以上代碼演示了將JSON數(shù)組轉(zhuǎn)化為C語(yǔ)言的int類型數(shù)組。其中,首先使用cJSON_Parse()方法將JSON字符串轉(zhuǎn)換為cJSON對(duì)象,然后使用cJSON_GetArraySize()方法獲取數(shù)組大小,接著使用cJSON_GetArrayItem()方法獲取數(shù)組元素,最后使用valueint獲取integer類型的值。
需要注意的是,在使用完cJSON對(duì)象之后,需要使用cJSON_Delete()方法銷毀該對(duì)象。