C語言是一門很常用的編程語言,同時JSON也是一種常用的數據格式,在C語言中,我們需要將JSON字符串轉換為string數組來進行操作。下面,本文將介紹如何通過C語言實現JSON字符串轉string數組。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
void parse_json(char *json_str, char **str_arr, int *size){
json_error_t error;
json_t *root, *data;
char *tmp_str;
root = json_loads(json_str, 0, &error);
if(!root){
printf("load json error: %s\n", error.text);
return;
}
/*獲取JSON對象中的data數組*/
data = json_object_get(root, "data");
*size = json_array_size(data);
str_arr = (char **)malloc(sizeof(char *) * (*size));
/*遍歷數組獲取字符串*/
for(int i=0; i<*size; i++){
tmp_str = json_dumps(json_array_get(data, i), JSON_ENCODE_ANY | JSON_ESCAPE_SLASH);
str_arr[i] = (char *)malloc(strlen(tmp_str) + 1);
strcpy(str_arr[i], tmp_str);
free(tmp_str);
}
json_decref(root);
}
int main(){
char *json_str = "{\"data\":[\"hello\",\"world\",\"json\"]}";
char **str_arr = NULL;
int size = 0;
parse_json(json_str, str_arr, &size);
/*打印字符串數組*/
printf("size: %d\n", size);
for(int i=0; i
在上述代碼中,我們使用了jansson庫來處理JSON字符串。具體實現過程如下:
- 首先使用json_loads()函數將JSON字符串解析為JSON對象。
- 通過json_object_get()函數獲取JSON對象中的"data"數組。
- 遍歷數組獲取每個字符串,并將其存儲在字符串數組中。
- 最后釋放內存。
這樣,就可以通過C語言實現JSON字符串轉string數組的功能了。