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

c json 串 對象讀取

劉姿婷1年前6瀏覽0評論

JSON是一種輕量級的數據交換格式,其通常應用于前后端數據交互等場景。而C語言中也存在著一些處理JSON的庫,如cJSON庫。

cJSON庫是一個快速而輕量級的庫,它允許我們在C語言中方便地解析和生成JSON數據。下面我們就來看一下如何從JSON串中讀取對象。

// JSON串
{
"name": "張三",
"age": 18,
"score": {
"math": 90,
"english": 85,
"chinese": 95
}
}
// C代碼
cJSON *root = cJSON_Parse(json_str);  // 解析JSON串
if (root) {
// 讀取對象
cJSON *name_obj = cJSON_GetObjectItem(root, "name");
cJSON *age_obj = cJSON_GetObjectItem(root, "age");
cJSON *score_obj = cJSON_GetObjectItem(root, "score");
// 讀取嵌套對象
cJSON *math_score_obj = cJSON_GetObjectItem(score_obj, "math");
cJSON *english_score_obj = cJSON_GetObjectItem(score_obj, "english");
cJSON *chinese_score_obj = cJSON_GetObjectItem(score_obj, "chinese");
// 獲取對象值
const char *name = cJSON_GetStringValue(name_obj);
int age = cJSON_GetNumberValue(age_obj);
int math_score = cJSON_GetNumberValue(math_score_obj);
int english_score = cJSON_GetNumberValue(english_score_obj);
int chinese_score = cJSON_GetNumberValue(chinese_score_obj);
// 打印結果
printf("name: %s\nage: %d\nmath: %d\nenglish: %d\nchinese: %d\n",
name, age, math_score, english_score, chinese_score);
cJSON_Delete(root);  // 釋放內存
}

以上代碼演示了如何使用cJSON庫從JSON串中讀取對象,包括讀取普通對象和嵌套對象,以及獲取對象的值。同時也需要注意,在使用完cJSON_Parse解析JSON串后,需要調用cJSON_Delete函數釋放內存。