C語言中使用url解析json字符串時,需要用到一些常用的庫,如stdlib.h、stdio.h、string.h等,以及一些json解析庫,如cJSON等。
下面是一個簡單的示例:
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <cjson/cJSON.h> int main() { char url[] = "https://api.github.com/users/octocat/repos"; char buffer[1024]; FILE *fp; fp = fopen("repos.json", "w"); // 打開url FILE *stream = popen(url, "r"); // 讀取response數據 while (fgets(buffer, 1024, stream) != NULL) { size_t len = strlen(buffer); fwrite(buffer, sizeof(char), len, fp); } // 關閉文件 fclose(fp); // 解析json fp = fopen("repos.json", "r"); char *json_content = (char *)malloc(1024 * sizeof(char)); fread(json_content, 1, 1024, fp); cJSON *root = cJSON_Parse(json_content); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); } else { printf("%s\n", cJSON_Print(root)); } // 釋放內存 free(json_content); cJSON_Delete(root); // 關閉文件 fclose(fp); return 0; }
代碼中首先定義了一個url,并且打開了一個文件用來存放response,然后使用popen函數打開url,讀取response數據并寫入到文件中。接著使用fopen打開文件,讀取文件內容到json_content中,使用cJSON_Parse函數解析json字符串,并將解析后的結果打印出來。最后釋放內存空間并關閉文件。
總的來說,使用C語言解析json字符串需要事先了解常用的庫和json解析庫的使用方法,同時需要注意內存的釋放和文件的關閉。