在C語言中,解析和遍歷JSON是一項常見的任務(wù)。JSON是一種輕量級的數(shù)據(jù)交換格式,它在Web應(yīng)用程序和API中使用廣泛。下面將介紹如何在C語言中解析和遍歷JSON。
// 引入json-c庫 #include// JSON字符串 const char* json_string = "{ \"name\": \"Tom\", \"age\": 20 }"; // 解析JSON字符串 json_object* json = json_tokener_parse(json_string); // 遍歷JSON enum json_type type; json_object_object_foreach(json, key, val) { type = json_object_get_type(val); switch(type) { case json_type_boolean: printf("%s: %s\n", key, json_object_get_boolean(val)?"true":"false"); break; case json_type_int: printf("%s: %d\n", key, json_object_get_int(val)); break; case json_type_double: printf("%s: %f\n", key, json_object_get_double(val)); break; case json_type_string: printf("%s: %s\n", key, json_object_get_string(val)); break; case json_type_array: printf("%s:", key); for(int i=0; i< json_object_array_length(val); i++) { json_object* arr_val = json_object_array_get_idx(val, i); printf(" %s", json_object_get_string(arr_val)); } printf("\n"); break; case json_type_object: /* 省略遍歷object的代碼 */ break; } } // 釋放JSON對象 json_object_put(json);
以上代碼演示了如何使用json-c庫解析JSON字符串,并遍歷JSON對象。通過使用json_object_object_foreach函數(shù),我們可以很容易地遍歷json_object對象的子項。在遍歷JSON對象時,我們可以通過json_object_get_type函數(shù)判斷當前子項的類型,并根據(jù)類型來訪問子項的值。