CJSON是C語言的一個JSON處理庫,它能夠將JSON格式的數據轉換成C語言中的數據類型,同時也能夠將C語言中的數據類型轉換成JSON格式的數據。CJSON還支持通過URL接收JSON格式的數據。下面是一個使用CJSON通過URL接收JSON的示例。
#include <stdio.h> #include <cJSON.h> void parseJson(char* jsonStr) { cJSON* root = cJSON_Parse(jsonStr); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); if (cJSON_IsString(name) && cJSON_IsNumber(age)) { printf("Name: %s \nAge: %d\n", name->valuestring, age->valueint); } else { printf("Invalid JSON format\n"); } cJSON_Delete(root); } } int main() { char* url = "http://example.com/json"; char* response = httpGet(url); if (response != NULL) { parseJson(response); } return 0; }
在這個示例中,我們首先定義了一個名為parseJson的函數,該函數接收JSON格式的字符串作為參數,并將其解析成CJSON的內部表示形式。我們使用cJSON_Parse函數來解析JSON字符串,如果解析成功,則可以通過cJSON_GetObjectItem函數從CJSON對象中獲取JSON元素。最后,我們使用cJSON_Delete函數釋放CJSON對象并關閉JSON字符串。
在主函數中,我們首先定義了一個名為url的字符串,其中包含我們要從服務器獲取JSON數據的URL地址。我們調用httpGet函數來獲取來自此URL的JSON數據。如果我們成功獲取了JSON數據,則調用parseJson函數來解析JSON數據。
在這個示例中,我們使用了一個名為httpGet的函數來獲取JSON數據。這個函數可以從任何一個HTTP服務器中獲取數據,我們這里并不詳細介紹httpGet函數的實現方法,我們只需要知道httpGet函數將返回一個包含JSON格式數據的字符串即可。