C JSON轉換DIC是一個數據處理的常見需求,C語言提供了方便的JSON庫,可以輕松實現JSON和字典之間的轉換。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char* json_str = "{\"name\":\"sam\",\"age\":25}"; json_error_t error; json_t* root = json_loads(json_str, 0, &error); if (!root) { printf("error: on line %d: %s\n", error.line, error.text); exit(1); } if (!json_is_object(root)) { printf("error: root is not an object\n"); json_decref(root); exit(1); } const char* key; json_t* value; json_object_foreach(root, key, value) { printf("%s: ", key); if (json_is_string(value)) { printf("%s\n", json_string_value(value)); } else if (json_is_integer(value)) { printf("%lld\n", json_integer_value(value)); } } json_decref(root); return 0; }
以上是一個簡單的示例代碼,首先我們定義了一個JSON字符串,然后使用json_loads將其解析成json_t對象。
接著判斷是否為對象類型,如果是對象類型則使用json_object_foreach遍歷鍵值對。
對于值是字符串或整數類型的情況,使用json_string_value和json_integer_value獲取其對應的值。
最后釋放json_t對象即可。