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

c json 解析屬性值

錢瀠龍2年前8瀏覽0評論

C JSON是一種用于解析和生成JSON數據的庫。

有時候我們需要訪問JSON數據的屬性值,這時候就需要使用C JSON提供的一些API來解析JSON屬性值。下面是一個使用C JSON解析JSON屬性值的示例:

#include <stdio.h>
#include <stdlib.h>
#include <cjson/cJSON.h>
int main() {
char* jsonStr = "{\"name\": \"Tom\", \"age\": 18, \"score\": [90, 80, 70]}";
cJSON* root = cJSON_Parse(jsonStr);
if (root == NULL) {
printf("JSON Parse Error\n");
return 1;
}
cJSON* name = cJSON_GetObjectItem(root, "name");
if (name != NULL) {
printf("Name: %s\n", name->valuestring);
}
cJSON* age = cJSON_GetObjectItem(root, "age");
if (age != NULL) {
printf("Age: %d\n", age->valueint);
}
cJSON* score = cJSON_GetObjectItem(root, "score");
if (score != NULL && cJSON_IsArray(score)) {
int size = cJSON_GetArraySize(score);
for (int i = 0; i< size; i++) {
cJSON* item = cJSON_GetArrayItem(score, i);
printf("Score[%d]: %d\n", i, item->valueint);
}
}
cJSON_Delete(root);
return 0;
}

在上面的示例中,我們首先定義了一個JSON字符串來演示屬性值的解析。然后使用cJSON_Parse函數將其解析為一個cJSON對象。

接著,我們使用cJSON_GetObjectItem函數獲取JSON對象中的屬性值。如果屬性值存在,我們就可以使用返回的cJSON對象訪問其值。

值得注意的是,cJSON_GetObjectItem函數返回的cJSON對象可能為空。因此,在使用這個對象之前,一定要先判斷是否為空。

對于JSON數組,我們可以使用cJSON_IsArray和cJSON_GetArraySize函數來判斷其是否為數組以及數組的大小,然后使用cJSON_GetArrayItem函數獲取數組中的元素。

最后,我們使用cJSON_Delete函數釋放分配的內存。