在C語言中,JSON(JavaScript Object Notation)是一種常見的數(shù)據(jù)交換格式。 C語言中的json-c庫可以用來解析和構造JSON數(shù)據(jù)。本文將介紹如何將C語言中的JSON數(shù)據(jù)轉換為數(shù)組。
#include <stdio.h> #include <json-c/json.h> int main() { const char *json_string = "{ \"numbers\": [1, 2, 3, 4, 5] }"; struct json_object *json_obj = json_tokener_parse(json_string); struct json_object *numbers_obj; json_object_object_get_ex(json_obj, "numbers", &numbers_obj); if (! json_object_is_type(numbers_obj, json_type_array)) { printf("Error: Object is not an array\n"); return 1; } int len = json_object_array_length(numbers_obj); int numbers[len]; int i; for (i = 0; i< len; i++) { numbers[i] = json_object_get_int(json_object_array_get_idx(numbers_obj, i)); } printf("Array contents: "); for (i = 0; i< len; i++) { printf("%d ", numbers[i]); } printf("\n"); return 0; }
代碼解釋:
- 第3、4行包含了必要的頭文件: stdio.h和json.h。
- 第6行的json_string定義了一個包含JSON數(shù)據(jù)的字符串。
- 第7行用json_tokener_parse()函數(shù)解析該字符串并創(chuàng)建一個json_object對象。
- 第8行用json_object_object_get_ex()函數(shù)獲取名為“numbers”的對象,并將其存儲在名為numbers_obj的變量中。
- 第10-13行檢查numbers_obj是否為一個數(shù)組。
- 第15-18行以整數(shù)格式把數(shù)組元素存儲在一個名為numbers的整數(shù)數(shù)組中。
- 第20-23行打印數(shù)組內(nèi)容。
運行代碼,輸出為:
Array contents: 1 2 3 4 5
這證明了我們成功地將C語言中的JSON數(shù)據(jù)轉換為數(shù)組。