C語言中的json數(shù)組是指以JSON格式存儲的數(shù)組數(shù)據(jù)類型。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,常用于前后端之間的數(shù)據(jù)傳遞。JSON數(shù)組在C語言中可以使用第三方庫進(jìn)行解析和生成。
#include <stdio.h>
#include <jansson.h>
int main()
{
char* json_string = "[1, 2, 3]";
json_t* root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if(!root)
{
printf("error:%s\n", error.text);
return 1;
}
if(!json_is_array(root))
{
printf("Error: Not an array\n");
json_decref(root);
return 1;
}
size_t n = json_array_size(root);
for(int i = 0; i < n; i++)
{
json_t* value = json_array_get(root, i);
printf("%d\n", json_integer_value(value));
}
json_decref(root);
return 0;
}
上述代碼使用了jansson庫解析JSON字符串,并以數(shù)組形式輸出了其中的元素。其中json_loads函數(shù)用于將JSON字符串解析為json_t類型的root對象,json_is_array函數(shù)用于判斷root是否是一個數(shù)組,json_array_size函數(shù)用于獲取數(shù)組的大小,json_array_get函數(shù)用于獲取數(shù)組中的元素。
C語言中也可以使用jansson庫生成JSON數(shù)組。以下是一個簡單的示例:
#include <stdio.h>
#include <jansson.h>
int main()
{
json_t* array = json_array();
json_array_append_new(array, json_integer(1));
json_array_append_new(array, json_integer(2));
json_array_append_new(array, json_integer(3));
char* json_string = json_dumps(array, JSON_ENCODE_ANY);
printf("%s", json_string);
free(json_string);
json_decref(array);
return 0;
}
上述代碼使用了json_array函數(shù)創(chuàng)建了一個空的數(shù)組類型的json_t對象。然后使用json_array_append_new函數(shù)為數(shù)組添加了元素。最后使用json_dumps函數(shù)將數(shù)組對象轉(zhuǎn)換為JSON字符串。