在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函数获取解析错误的详细信息。