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

c 獲取json下所有的數據

洪振霞2年前7瀏覽0評論

C 獲取 JSON 下所有的數據

以前在項目中,我們往往使用字符串的方式進行 JSON 的數據處理,其效率和代碼可維護性都比較低。現在很多語言都提供了對于 JSON 的庫,大大提高了 JSON 數據的處理效率。

在 C 語言中,我們可以使用

json-c
庫來處理 JSON 數據。

下面以一個 JSON 文件的讀取為例,來講解如何獲取 JSON 下所有的數據。

/* 讀取 JSON 文件 */
#include <stdio.h>
#include <json-c/json.h>
int main() {
FILE *fp;
struct json_object *root;
char buffer[512];
/* 打開 JSON 文件 */
fp = fopen("data.json", "r");
fread(buffer, 512, 1, fp);
fclose(fp);
/* 解析成 JSON 對象 */
root = json_tokener_parse(buffer);
/* 獲取 JSON 下所有的數據 */
printf("JSON 數據:\n%s\n", json_object_to_json_string_ext(root, JSON_C_TO_STRING_PRETTY));
return 0;
}

通過

json_tokener_parse
函數,我們可以將 JSON 字符串解析成 JSON 對象。然后通過
json_object_to_json_string_ext
函數,我們可以將 JSON 對象轉化成 JSON 字符串。

這個例子只是簡單地將 JSON 數據輸出了,如果我們需要獲取 JSON 下的某一個數據,可以使用

json_object_get
函數。

例如,我們有一個這樣的 JSON 數據:

{
"name": "Tom",
"age": 20,
"gender": "male",
"hobbies": [
"reading",
"running",
"playing games"
]
}

我們可以通過這樣的代碼來獲取其中的某一個數據:

/* 獲取 JSON 下的某一個數據 */
struct json_object *name_obj = json_object_get(root, "name");
const char *name_val = json_object_get_string(name_obj);
printf("name 值:%s\n", name_val);

這里我獲取了 JSON 對象中的

name
數據,并以字符串的形式輸出了。

以上就是使用 C 語言獲取 JSON 下所有的數據的方法,希望對大家有所幫助。