当先锋百科网

首页 1 2 3 4 5 6 7

在C语言中,要接收JSON格式的数据,需要使用第三方库来帮助解析和处理JSON数据。其中,较为常用的库有cJSON、Jansson等。

#include <cJSON.h>
int main()
{
/* 假设有以下的json字符串 */
char *jsonstr = "{\"name\":\"Tom\",\"age\":20,\"email\":\"tom@example.com\"}";
/* 解析json字符串 */
cJSON* root = cJSON_Parse(jsonstr);
/* 获取json数据 */
char* name = cJSON_GetObjectItem(root, "name")->valuestring;
int age = cJSON_GetObjectItem(root, "age")->valueint;
char* email = cJSON_GetObjectItem(root, "email")->valuestring;
/* 打印输出获取到的json数据 */
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("Email: %s\n", email);
/* 释放json对象内存 */
cJSON_Delete(root);
return 0;
}

在上述示例代码中,首先使用cJSON_Parse函数将json字符串解析成cJSON对象,然后使用cJSON_GetObjectItem函数获取对应的JSON数据,最后打印输出获取到的数据。

需要注意的是,如果json字符串格式错误或者解析失败,cJSON_Parse函数将会返回NULL指针。此时,需要通过cJSON_GetErrorPtr函数获取解析错误的详细信息。