JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,它在現代的Web應用中得到了廣泛的應用。使用JSON,我們可以將數據從服務器發送到客戶端,或者將客戶端收集的數據發送回服務器。JSON可以包含對象、數組、字符串、數字、布爾值以及null。C語言具有處理JSON數據的能力,本文將介紹如何將JSON轉換為集合。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { // 創建一個JSON字符串 char *json_str = "{\"name\":\"Tom\",\"age\":18,\"score\":[86, 92, 78]}"; json_t *root; json_error_t error; // 解析JSON字符串 root = json_loads(json_str, 0, &error); if (!root) { printf("error: on line %d: %s\n", error.line, error.text); return 1; } // 獲取根節點下的name成員 json_t *name_json = json_object_get(root, "name"); const char *name_str = json_string_value(name_json); printf("name: %s\n", name_str); // 獲取根節點下的age成員 json_t *age_json = json_object_get(root, "age"); int age_val = json_integer_value(age_json); printf("age: %d\n", age_val); // 獲取根節點下的score成員 json_t *score_json = json_object_get(root, "score"); int score_array_size = json_array_size(score_json); printf("score array size: %d\n", score_array_size); for (int i = 0; i < score_array_size; i++) { json_t *score_val = json_array_get(score_json, i); printf("score[%d]: %d\n", i, json_integer_value(score_val)); } // 釋放JSON對象 json_decref(root); return 0; }
在上面的代碼中,我們首先創建一個JSON字符串,然后使用json_loads函數將其解析為JSON對象。之后,我們可以使用json_object_get函數和json_array_get函數獲取JSON對象中的成員,在獲取成員后,我們可以使用不同的函數獲取成員的值。
在完成對JSON對象的處理后,我們需要使用json_decref函數釋放JSON對象。使用C語言處理JSON數據非常方便,我們可以使用json_t、json_array、json_object等數據類型輕松地操作JSON數據。