淘先锋技术网

首页 1 2 3 4 5 6 7

C语言中使用url解析json字符串时,需要用到一些常用的库,如stdlib.hstdio.hstring.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解析库的使用方法,同时需要注意内存的释放和文件的关闭。