欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 轉成json字符串格式轉換

錢艷冰1年前9瀏覽0評論

在進行網絡通信或與數(shù)據庫交互時,我們經常需要將C語言中的數(shù)據結構轉換成JSON串格式。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據交換格式,易于閱讀和編寫,并可輕松轉換為各種編程語言的數(shù)據類型。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct {
char *name;
int age;
char **hobbies;
} person;
int main() {
// 創(chuàng)建person結構體并初始化數(shù)據
person p;
p.name = "小明";
p.age = 25;
p.hobbies = malloc(sizeof(char*)*3);
p.hobbies[0] = "籃球";
p.hobbies[1] = "游泳";
p.hobbies[2] = "攝影";
// 將person結構體轉換為JSON串格式
json_t *root = json_object();
json_object_set_new(root, "name", json_string(p.name));
json_object_set_new(root, "age", json_integer(p.age));
json_t *hobbies = json_array();
for(int i=0; i<3; i++) {
json_array_append_new(hobbies, json_string(p.hobbies[i]));
}
json_object_set_new(root, "hobbies", hobbies);
char *json_str = json_dumps(root, JSON_ENCODE_ANY);
printf("%s\n", json_str);
// 釋放內存
json_decref(root);
free(p.hobbies);
free(json_str);
return 0;
}

在上面的代碼中,我們首先定義了一個person結構體,并初始化了其數(shù)據。然后使用jansson庫中的函數(shù),將其轉換為JSON串格式,并通過json_dumps()函數(shù)將其輸出到控制臺上。

其中,json_object_set_new()函數(shù)用于向JSON對象中添加鍵值對,json_string()和json_integer()分別用于將字符串和整數(shù)類型轉換為JSON數(shù)據類型,json_array()用于創(chuàng)建JSON數(shù)組。

最后我們需要注意在程序結束時釋放內存。