假如你已經熟悉了C語言的基礎語法,如何從一個JSON數據中取出一個值呢?這里我給出一個簡單的例子,來講解一下如何使用C語言處理JSON數據。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { // 假設我們有一個JSON字符串: {"name":"Tom", "age":18} const char *json_string = "{\"name\":\"Tom\", \"age\":18}"; json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if(!root) { fprintf(stderr, "json error on line %d: %s\n", error.line, error.text); return 1; } // 從JSON中取出“name”字段的值 json_t *name_obj = json_object_get(root, "name"); const char *name = json_string_value(name_obj); printf("name: %s\n", name); json_decref(root); return 0; }
首先,在代碼中我們需要包含json.h頭文件,這是jansson json庫的頭文件。接下來定義一個字符串類型的json_string,來存儲我們的json數據。然后使用json_loads()函數將json字符串轉化為JSON對象。如果json數據無法轉化成JSON對象,則會返回錯誤,需要處理錯誤。在這個例子中,我們利用json_object_get()函數從JSON對象中取出“name”字段的值,并將其存儲在一個json_t類型的name_obj對象中。最后,使用json_string_value()函數將json_t對象轉換成字符串類型,并將其賦值給一個常量指針類型的name變量。最終輸出“name”的值,“Tom”。