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解析库的使用方法,同时需要注意内存的释放和文件的关闭。