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

c 把json轉換對象

錢淋西1年前7瀏覽0評論

C語言與JSON轉換是非常常見的操作,XML也是同理,這里主要介紹一下使用 C 語言將 JSON 轉換為對象的方法。其中 CJSON 是一個非常常用的庫,它可以將 JSON 轉換為 C 語言的數據結構。

#include "cJSON.h"
#include <stdio.h>
int main()
{
char *json = "{\"name\": \"Tom\", \"age\": 18, \"gender\": \"male\"}";
cJSON *root = cJSON_Parse(json);
if (root == NULL) {
printf("parse json error\n");
return -1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
if (name != NULL && name->type == cJSON_String) {
printf("name: %s\n", name->valuestring);
}
cJSON *age = cJSON_GetObjectItem(root, "age");
if (age != NULL && age->type == cJSON_Number) {
printf("age: %d\n", age->valueint);
}
cJSON *gender = cJSON_GetObjectItem(root, "gender");
if (gender != NULL && gender->type == cJSON_String) {
printf("gender: %s\n", gender->valuestring);
}
cJSON_Delete(root);
return 0;
}

上述代碼中,我們首先定義了一個 JSON 字符串,并使用 cJSON_Parse 將其轉換為 cJSON 對象。然后通過 cJSON_GetObjectItem 函數獲取 JSON 對象中的屬性,并判斷屬性的類型,最后輸出屬性的值。

cJSON 還支持將 C 語言數據結構轉換為 JSON 字符串。例如:

cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "Tom");
cJSON_AddNumberToObject(root, "age", 18);
cJSON_AddStringToObject(root, "gender", "male");
char *json = cJSON_PrintUnformatted(root);
printf("%s\n", json);
free(json);
cJSON_Delete(root);

上述代碼中,我們首先創建了一個 cJSON 對象,并使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 函數向其添加屬性。然后使用 cJSON_PrintUnformatted 將數據轉換為 JSON 字符串,并輸出。

總體來說,cJSON 是使用 C 語言解析和生成 JSON 的一種非常方便的庫,可以在很多項目中使用。