在日常开发中,我们常常会遇到需要将JSON字符串转换成字符串数组的情况,本文将介绍如何使用C语言来完成这个任务。
首先,在C语言中,我们需要使用JSON库来处理JSON字符串。这里我们选择使用cJSON库,它是一个轻量级的、跨平台的C语言JSON解析器。
接下来,我们需要定义一个字符串数组来存储JSON字符串中的数据。我们可以使用cJSON库中提供的cJSON_Parse函数来将JSON字符串解析成一个cJSON结构体,然后通过遍历结构体来获取需要的值并存储到字符串数组中。
#include "cJSON.h" #include <stdio.h> #include <stdlib.h> int main() { char *json_str = "{\"names\": [\"Tom\",\"Jerry\",\"Bob\"]}"; cJSON *root = cJSON_Parse(json_str); // 获取names数组 cJSON *names = cJSON_GetobjectItem(root,"names"); // 获取数组长度 int names_len = cJSON_GetArraySize(names); // 定义字符串数组 char **name_arr = malloc(names_len * sizeof(char*)); // 遍历数组 for (int i = 0; i < names_len; i++) { cJSON *name = cJSON_GetArrayItem(names,i); name_arr[i] = name->valuestring; } // 输出数组 printf("name_arr: \n"); for (int i = 0; i < names_len; i++) { printf("%s ",name_arr[i]); } // 释放内存 cJSON_Delete(root); free(name_arr); return 0; }
上述代码中,我们先定义了一个JSON字符串,然后使用cJSON_Parse函数将其解析成一个cJSON结构体。接着,我们通过cJSON_GetobjectItem函数获取JSON字符串中的names数组,并使用cJSON_GetArraySize函数获取其长度。我们再使用malloc函数动态分配一个字符串数组,并在遍历数组的过程中,使用cJSON_GetArrayItem函数获取每一个字符串元素,并将其存储到字符串数组中。
最后,我们输出字符串数组,并释放内存。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。