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

C FOR遍歷循環JSON格式數據

榮姿康2年前9瀏覽0評論

在C FOR循環中遍歷JSON格式數據是一種常見的操作,它可以讓我們按照一定規律訪問JSON數據中的每個元素。下面我們來看看如何使用C FOR循環來遍歷JSON格式數據。

#include <stdio.h>
#include <jansson.h>
int main()
{
const char *json_data = "{\"name\":\"Tom\",\"age\":24,\"gender\":\"male\"}";
json_error_t error;
json_t *root = json_loads(json_data, 0, &error);
if (!root) {
printf("error: on line %d: %s\n", error.line, error.text);
return 1;
}
const char *key;
json_t *value;
json_object_foreach(root, key, value)
{
printf("%s:", key);
switch(json_typeof(value)) {
case JSON_STRING:
printf(" %s\n", json_string_value(value));
break;
case JSON_INTEGER:
printf(" %lld\n", json_integer_value(value));
break;
case JSON_REAL:
printf(" %f\n", json_real_value(value));
break;
case JSON_TRUE:
printf(" true\n");
break;
case JSON_FALSE:
printf(" false\n");
break;
case JSON_OBJECT:
printf(" object\n");
break;
case JSON_ARRAY:
printf(" array\n");
break;
case JSON_NULL:
printf(" null\n");
break;
}
}
json_decref(root);
return 0;
}

以上代碼中,我們使用了json模塊提供的json_loads函數將JSON格式的數據轉換成json_t結構體對象。然后,我們在FOR循環中遍歷json_t對象的每個成員,其中json_object_foreach函數可以遍歷json_t對象,并且將每個成員的鍵值對分別賦值給key和value。

在循環體內部,我們可以使用switch語句根據value的類型打印出不同的值。例如,如果value是JSON_STRING類型,則調用json_string_value函數可以將它轉化為C語言的字符串類型,并打印出來。

最后,我們還需要調用json_decref函數釋放json_t對象的內存空間,避免內存泄漏。