在C語言中,實現將JSON字符串轉換成數組是一個常見的需求。JSON是一種輕量級的數據交換格式,具有易讀、易編寫和易解析等特點,因此在WEB開發和移動開發中廣泛使用。而C語言是一種高效且靈活的編程語言,被廣泛應用于系統開發、嵌入式開發等領域。下面我們來介紹如何在C語言中實現JSON字符串轉數組的操作。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> //需要安裝jansson庫 int main() { char *json_str = "{\"name\":\"John Smith\", \"age\":30, \"city\":\"New York\"}"; //定義JSON字符串 json_error_t error; //定義JSON錯誤信息 json_t *json_obj = json_loads(json_str, 0, &error); //將JSON字符串轉換成JSON對象 if(!json_obj) //如果轉換失敗,則輸出錯誤信息 { printf("JSON error on line %d: %s\n", error.line, error.text); return -1; } const char *name = json_string_value(json_object_get(json_obj, "name")); //獲取JSON對象中key為"name"的value int age = json_integer_value(json_object_get(json_obj, "age")); //獲取JSON對象中key為"age"的value const char *city = json_string_value(json_object_get(json_obj, "city")); //獲取JSON對象中key為"city"的value json_decref(json_obj); //釋放JSON對象 printf("Name: %s\n", name); printf("Age: %d\n", age); printf("City: %s\n", city); return 0; }
以上代碼使用了jansson庫實現JSON字符串轉數組的功能。該庫提供了一組功能強大而簡單的API,用于JSON數據的解析和生成。我們可以通過json_loads函數將JSON字符串轉換成JSON對象,并通過json_object_get函數獲取JSON對象中的value。最后通過json_decref函數釋放JSON對象。