C語言是一種非常強大的編程語言,可以用于開發各種不同類型的應用程序。C語言提供了許多庫函數來幫助開發人員完成各種任務,其中之一就是JSON轉換。如果您使用C語言編寫應用程序,那么您可能需要將JSON數據轉換成數組對象數組,以方便處理和修改數據。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <jansson.h>
int main()
{
const char *json_string = "[{"name":"apple","price":1.0},{"name":"banana","price":2.0},{"name":"pear","price":3.0}]";
json_error_t error;
json_t *root;
json_t *array;
json_t *obj;
size_t index;
double price;
const char *name;
root = json_loads(json_string, 0, &error);
array = json_array();
if(!root)
{
printf("error: on line %d: %s\n", error.line, error.text);
return 1;
}
json_array_foreach(root, index, obj)
{
name = json_string_value(json_object_get(obj, "name"));
price = json_real_value(json_object_get(obj, "price"));
json_array_append_new(array, json_pack("{s:s, s:f}", "name", name, "price", price));
}
json_decref(root);
printf("%s\n", json_dumps(array, JSON_INDENT(4)));
return 0;
}
上面這段代碼使用jansson庫進行JSON的解析和轉換。在這個例子中,我們有一個JSON字符串,它包含三個對象,每個對象包括名字和價格。我們使用json_loads函數將JSON字符串轉換為C語言中的json_t結構體。然后,我們遍歷每個對象,并獲取每個對象中的名字和價格。最后,我們將獲取的數據轉換成新的json_t類型,并使用json_array_append_new函數將其添加到新的數組中。
最后,我們使用json_dumps函數將JSON數組轉換成字符串,并打印到控制臺上。