最常見的數據格式之一是JSON(JavaScript對象表示法),它是一種輕量級的數據交換格式。在許多應用程序中,我們需要將C字符串轉換為JSON格式,以方便在客戶端和服務器之間傳遞數據。本文將介紹如何使用C語言將字符串轉換為JSON,以及如何遍歷JSON對象的不同部分。
#include <stdio.h>
#include <cJSON.h>
int main() {
char jsonStr[100] = "{\"name\": \"Alice\", \"age\": 25, \"isMarried\": true}";
//將C字符串轉換為JSON格式
cJSON* jsonRoot = cJSON_Parse(jsonStr);
cJSON* name = cJSON_GetObjectItem(jsonRoot, "name");
cJSON* age = cJSON_GetObjectItem(jsonRoot, "age");
cJSON* isMarried = cJSON_GetObjectItem(jsonRoot, "isMarried");
//遍歷JSON對象的不同部分
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Is married: %s\n", cJSON_IsTrue(isMarried) ? "yes" : "no");
//釋放JSON對象
cJSON_Delete(jsonRoot);
return 0;
}
首先,我們需要導入cJSON庫(可以從Github獲得)。在main函數中,我們創建了一個包含JSON字符串的char數組。然后使用cJSON_Parse()將數組轉換為JSON格式,并將其保存在jsonRoot指針中。
然后,我們使用cJSON_GetObjectItem()獲取JSON對象中的各個字段。在這個例子中,我們獲取了"name"、"age"、"isMarried"三個字段。
最后,我們使用printf輸出JSON對象的不同字段。需要注意的是,name是一個字符串(valuestring),age是一個整數(valueint),isMarried是一個布爾類型(cJSON_IsTrue)。
最后,我們使用cJSON_Delete()釋放JSON對象,以避免內存泄漏。
下一篇vue寫個get請求