JSON是一种轻量级的数据交换格式,常用于前后端数据传输。C语言可以通过第三方库来解析和生成JSON字符串。
C语言中常用的JSON解析库有几个,如cJSON、JSMN等。其中,cJSON是比较流行的解析库,以下代码演示了如何使用cJSON解析一个JSON字符串:
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{\"name\":\"Peter\",\"age\":18,\"hobby\":[\"coding\",\"reading\"]}"; cJSON *root = cJSON_Parse(json_str); if (!root) { printf("JSON parse error\n"); return -1; } cJSON *name = cJSON_GetobjectItem(root,"name"); cJSON *age = cJSON_GetobjectItem(root,"age"); cJSON *hobby = cJSON_GetobjectItem(root,"hobby"); printf("name: %s\n",name->valuestring); printf("age: %d\n",age->valueint); cJSON *hobby_item; cJSON_ArrayForEach(hobby_item,hobby) { printf("hobby: %s\n",hobby_item->valuestring); } cJSON_Delete(root); return 0; }
以上代码通过cJSON库解析了一个JSON字符串,并依次获取其中的name、age和hobby字段的值。cJSON支持的数据类型包括null、bool、number、string、array和object。
如果需要在C语言中生成JSON字符串,可以使用cJSON提供的函数。以下是一个示例:
#include <stdio.h> #include <cJSON.h> int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root,"name","Peter"); cJSON_AddNumberToObject(root,"age",18); cJSON *hobby = cJSON_CreateArray(); cJSON_AddItemToArray(hobby,cJSON_CreateString("coding")); cJSON_AddItemToArray(hobby,cJSON_CreateString("reading")); cJSON_AddItemToObject(root,"hobby",hobby); char *json_str = cJSON_Print(root); printf("%s\n",json_str); cJSON_Delete(root); free(json_str); return 0; }
以上代码创建了一个JSON对象,并添加了name、age和hobby三个字段的值。最后通过cJSON_Print函数将JSON对象转化为JSON字符串输出。
总之,使用C语言解析和生成JSON字符串可以通过第三方库来实现,以cJSON库为例,可以轻松解析和生成JSON字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。