JSON是一種輕量級的數據交換格式。C語言具有操作數據的能力,因此常常需要使用C語言來對JSON數據進行處理。以下是關于C語言中如何轉換JSON的介紹。
一般來說,JSON格式的數據可以通過String類型或File類型讀入C語言。讀入String類型的數據可以使用現成的JSON解析庫(如JSON-C、cJSON等)。這里以cJSON為例來進行介紹。
#include <stdio.h> #include <cJSON.h> int main() { char *json_string = "{\"name\":\"Tom\", \"age\":25}"; // 解析json字符串 cJSON *root = cJSON_Parse(json_string); // 從json數據中獲取值 cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); // 打印輸出值 printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); // 釋放內存 cJSON_Delete(root); return 0; }
上述代碼將會輸出:
Name: Tom Age: 25
cJSON通過cJSON_Parse函數解析json字符串,并返回cJSON結構體指針。然后可以通過cJSON_GetObjectItem函數獲取結構體中的值(支持string、int、double、bool、array等類型)。最后通過cJSON_Delete函數釋放內存。
當然,如果需要將數據轉換為JSON格式輸出,可以使用cJSON_CreateObject和cJSON_CreateString函數進行創建和賦值。以下是一個樣例代碼:
#include <stdio.h> #include <cJSON.h> int main() { // 創建JSON對象 cJSON *root = cJSON_CreateObject(); // 給對象賦值 cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 25); cJSON *hobbies = cJSON_AddArrayToObject(root, "hobbies"); cJSON_AddItemToArray(hobbies, cJSON_CreateString("swimming")); cJSON_AddItemToArray(hobbies, cJSON_CreateString("jogging")); // 將對象轉換為JSON格式的字符串 char *json_string = cJSON_Print(root); printf("%s\n", json_string); // 釋放內存 cJSON_Delete(root); free(json_string); return 0; }
上述代碼將會輸出:
{"name":"Tom","age":25,"hobbies":["swimming","jogging"]}
以上是關于C語言中處理JSON數據的簡單介紹,希望能對大家有所幫助。
下一篇vue 2.0 $