JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它具有易讀易寫、易于解析和生成、支持多種編程語言等特點(diǎn),并被廣泛應(yīng)用于 Web 應(yīng)用中。在 C 語言中,將 JSON 格式的字符串轉(zhuǎn)換成哈希圖(Hash Map)是非常常見的操作。下面我們就來介紹一下如何使用 C 語言將 JSON 字符串轉(zhuǎn)換成哈希圖。
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <jansson.h> int main() { // 定義 JSON 字符串 const char *json_string = "{\"name\":\"Tom\",\"age\":18}"; // 解析 JSON 字符串 json_error_t error; json_t *root = json_loads(json_string, 0, &error); // 將 JSON 哈希圖轉(zhuǎn)換成 C 語言哈希圖 json_t *value; const char *key; json_object_foreach(root, key, value) { if (json_is_string(value)) { printf("%s : %s\n", key, json_string_value(value)); } else if (json_is_integer(value)) { printf("%s : %d\n", key, (int)json_integer_value(value)); } } // 釋放資源 json_decref(root); return 0; }
首先,我們需要定義一個(gè) JSON 字符串,如上面的例子。然后使用 json_loads 函數(shù)解析 JSON 字符串,得到一個(gè) json_t 類型的哈希圖。接著,我們使用 json_object_foreach 函數(shù)遍歷哈希圖,將其轉(zhuǎn)換成 C 語言的哈希圖。在轉(zhuǎn)換過程中,我們可以使用 json_is_xxx 函數(shù)判斷值的類型,然后使用相應(yīng)的函數(shù)獲取值,并使用 printf 函數(shù)輸出。最后,記得釋放資源,避免內(nèi)存泄漏。
在 C 語言中,使用 jansson 庫可以極大地簡化我們對 JSON 字符串的處理,使得將一個(gè) JSON 字符串轉(zhuǎn)換成哈希圖變得非常容易。如果您經(jīng)常處理 JSON 數(shù)據(jù),建議您學(xué)習(xí)并使用 jansson 庫。
上一篇python+抓包開源
下一篇python 尼姆游戲