色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c語言結構體與json轉換

李中冰2年前8瀏覽0評論

在C語言中,結構體是一種自定義的數據類型,它可以包含多個不同類型的數據成員。而JSON(JavaScript Object Notation)則是一種輕量級的數據交換格式,常用于Web應用中前后端之間的數據傳輸。在處理數據時,C程序經常需要將結構體轉換為JSON格式,或者將JSON格式轉換為結構體。

要將結構體轉換為JSON格式,可以使用第三方庫,比如常用的JSON-C庫。以下是一個示例代碼:

#include <stdio.h>
#include <json-c/json.h>
struct book {
char title[50];
char author[50];
int pages;
};
int main() {
struct book mybook = {"The Catcher in the Rye", "J.D. Salinger", 277};
struct json_object *json_obj = json_object_new_object();
json_object_object_add(json_obj, "title", json_object_new_string(mybook.title));
json_object_object_add(json_obj, "author", json_object_new_string(mybook.author));
json_object_object_add(json_obj, "pages", json_object_new_int(mybook.pages));
printf("%s\n", json_object_to_json_string(json_obj));
return 0;
}

上述代碼定義了一個book結構體,并創建了一個JSON對象json_obj。使用json_object_object_add()函數將結構體中的數據添加到JSON對象中,最后使用json_object_to_json_string()函數將JSON對象轉換為JSON格式字符串并輸出。

另外,要將JSON格式字符串轉換為結構體,也可以使用JSON-C庫提供的函數。下面是一個示例代碼:

#include <stdio.h>
#include <json-c/json.h>
struct book {
char title[50];
char author[50];
int pages;
};
int main() {
char *json_str = "{\"title\":\"The Catcher in the Rye\",\"author\":\"J.D. Salinger\",\"pages\":277}";
struct json_object *json_obj = json_tokener_parse(json_str);
struct json_object *title_obj, *author_obj, *pages_obj;
json_object_object_get_ex(json_obj, "title", &title_obj);
json_object_object_get_ex(json_obj, "author", &author_obj);
json_object_object_get_ex(json_obj, "pages", &pages_obj);
struct book mybook = {
.title = json_object_get_string(title_obj),
.author = json_object_get_string(author_obj),
.pages = json_object_get_int(pages_obj)
};
printf("%s\n", mybook.title);
printf("%s\n", mybook.author);
printf("%d\n", mybook.pages);
return 0;
}

以上代碼中,首先定義了一個book結構體,然后將JSON格式字符串轉換為JSON對象,并通過json_object_object_get_ex()函數獲取各個數據成員的JSON對象。最后通過json_object_get_string()和json_object_get_int()函數將JSON對象中的數據轉換為結構體中的對應類型。