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

c 循環遍歷json

錢浩然2年前9瀏覽0評論

C語言是一種功能強大的編程語言,擁有廣泛的應用場景。在處理JSON數據時,最常見的方法是使用循環來遍歷其中的數據。循環語句是一種重復執行某一任務的結構,可大大降低重復代碼的代碼量和代碼的維護難度。

#include <stdio.h>
#include <jansson.h>
int main() {
const char *json_string = "{\"name\": \"John\", \"age\": 30}";
json_t *root;
json_error_t error;
// 解析JSON字符串
root = json_loads(json_string, 0, &error);
// 獲取JSON對象類型
if (!json_is_object(root)) {
fprintf(stderr, "error: root is not an object\n");
json_decref(root);
return 1;
}
// 遍歷JSON對象
const char *key;
json_t *value;
json_object_foreach(root, key, value) {
printf("key: %s\n", key);
// 獲取JSON值類型
switch(json_typeof(value)) {
case JSON_OBJECT:
printf("value: object\n");
break;
case JSON_ARRAY:
printf("value: array\n");
break;
case JSON_STRING:
printf("value: %s\n", json_string_value(value));
break;
case JSON_INTEGER:
printf("value: %" JSON_INTEGER_FORMAT "\n", json_integer_value(value));
break;
case JSON_REAL:
printf("value: %f\n", json_real_value(value));
break;
case JSON_TRUE:
printf("value: true\n");
break;
case JSON_FALSE:
printf("value: false\n");
break;
case JSON_NULL:
printf("value: null\n");
break;
default:
printf("value: unknown\n");
}
}
// 釋放JSON對象
json_decref(root);
return 0;
}

上述代碼使用jansson庫解析JSON字符串,遍歷JSON對象中的所有元素,并打印出它們的類型。在循環中,我們使用json_object_foreach函數來循環遍歷JSON對象中的所有鍵值對,然后使用json_typeof函數來獲取JSON值的類型。這種方法不僅簡單易懂,而且可讀性良好,是C語言中處理JSON數據的常見實現方式。