C語言的字符串是一種非常常見的數據類型,它可以通過字符串轉義符號來表示各種字符,比如單引號、雙引號、換行符等特殊字符。在開發中,我們有時候需要將C字符串轉換成JSON對象數組,以便于在各種應用場景中進行數據處理和展示。下面我們就來介紹一下C字符串轉成JSON對象數組的方法。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<jansson.h> int main() { char* str_data = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}"; json_error_t error; json_t* json,obj; json = json_loads(str_data,0,&error); if (!json_is_object(json)) { printf("error: JSON parsing failed.\n"); return -1; } obj = json_object_get(json,"name"); printf("name:%s\n",json_string_value(obj)); obj = json_object_get(json,"age"); printf("age:%d\n",json_integer_value(obj)); obj = json_object_get(json,"gender"); printf("gender:%s\n",json_string_value(obj)); json_decref(json); return 0; }
首先我們需要包含以下幾個頭文件:stdio.h、stdlib.h、string.h和jansson.h。
然后我們需要定義一個字符串類型的變量str_data,里面存放的是我們要轉換成JSON數組的字符串。
接著我們定義了json_error_t類型的error變量和json_t類型的json和obj變量,這些變量將用于我們后面的JSON解析和數據操作。
我們使用json_loads()函數將字符串轉換成JSON對象。如果json_is_object()函數返回false,則說明JSON解析失敗,這時我們需要返回-1。
從json_t類型的json對象中獲取數據時,我們需要使用json_object_get()函數,該函數返回一個json_t類型的obj對象。我們可以通過該函數的第二個參數指定要獲取的屬性名,然后使用json_string_value()函數或json_integer_value()函數獲取值,然后分別打印出名稱、年齡和性別。
最后,我們需要使用json_decref()函數釋放內存。