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

c 反序列化json數組

黃文隆2年前8瀏覽0評論

C 可以使用第三方庫來進行 JSON 的反序列化操作,其中常用的包括 cJSON、Jansson 和 jsnp 庫等。這些庫均提供了簡單易用,性能高效的 API,可用于解析 JSON 數組數據。

/* 使用 cJSON 庫解析 JSON 數組 */
#include <stdio.h>
#include <cjson/cJSON.h>
int main()
{
cJSON *root = NULL;
cJSON *item = NULL;
char *json_data = "[{\"name\":\"zhangsan\",\"age\":20},{\"name\":\"lisi\",\"age\":22}]";
root = cJSON_Parse(json_data);
if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
item = cJSON_GetArrayItem(root, 0);
printf("name: %s, age: %d\n", cJSON_GetObjectItem(item, "name")->valuestring, cJSON_GetObjectItem(item, "age")->valueint);
item = cJSON_GetArrayItem(root, 1);
printf("name: %s, age: %d\n", cJSON_GetObjectItem(item, "name")->valuestring, cJSON_GetObjectItem(item, "age")->valueint);
cJSON_Delete(root);
return 0;
}

以上示例代碼使用 cJSON 庫中的 cJSON_Parse() 函數對 JSON 數組進行解析,可以通過 cJSON_GetArrayItem() 函數按照索引值獲取數組項,并使用 cJSON_GetObjectItem() 函數獲取鍵值對應的值進行訪問。在打印結果時,需要注意使用 cJSON_GetObjectItem() 函數獲取值所對應的類型,例如 cJSON_GetObjectItem() 函數返回的值需使用 cJSON_GetStringValue() 函數獲取字符串類型的值。

除了 cJSON 庫,Jansson 和 jsnp 庫均提供了類似的 API 進行 JSON 數組的反序列化操作。