在C語言中使用JSON傳遞參數,可以方便地將多個參數打包為一個JSON對象進行傳輸和解析。下面是一個簡單的示例:
#include <stdio.h> #include <jansson.h> int main() { // 創建一個JSON對象 json_t *json = json_object(); // 設置參數值 json_object_set_new(json, "name", json_string("張三")); json_object_set_new(json, "age", json_integer(20)); json_object_set_new(json, "height", json_real(1.8)); json_object_set_new(json, "hobbies", json_pack("[ssss]", "游泳", "跑步", "旅游", "閱讀")); // 序列化JSON對象為字符串 const char *json_str = json_dumps(json, JSON_COMPACT); // 輸出JSON字符串 printf("%s\n", json_str); // 解析JSON字符串為對象 json_t *json_obj = json_loads(json_str, JSON_DECODE_ANY, NULL); // 獲取參數值 const char *name = json_string_value(json_object_get(json_obj, "name")); int age = json_integer_value(json_object_get(json_obj, "age")); double height = json_real_value(json_object_get(json_obj, "height")); json_t *hobbies_arr = json_object_get(json_obj, "hobbies"); // 遍歷數組元素 size_t idx; json_t *value; const char *hobby; json_array_foreach(hobbies_arr, idx, value) { hobby = json_string_value(value); printf("愛好%d:%s\n", idx+1, hobby); } // 釋放對象和內存 json_decref(json); json_decref(json_obj); free(json_str); return 0; }
上述代碼中,首先創建了一個JSON對象,然后設置了一些參數值,包括字符串、整數、實數和數組。接著,使用json_dumps將JSON對象序列化為字符串,輸出到控制臺進行查看。然后,通過json_loads解析JSON字符串,獲取對應的參數值。最后,遍歷數組元素并輸出。
需要注意的是,在使用json_object_set_new設置參數值時,需要使用相應的JSON類型的構造函數。例如json_string、json_integer、json_real和json_pack等。解析JSON字符串時,可以通過json_string_value、json_integer_value、json_real_value等獲取對應類型的值。
上一篇es6 請求json文件
下一篇python 自動化應用