在C語言中,對于字符串的處理是非常重要的,同時JSON也是一種常用的格式化數據的方式,很多時候需要從JSON串中解析出所需要的字符串,那么該如何用C語言對JSON串進行截取呢?下面我們就來介紹一下如何使用JSON截取字符串數組。
#include#include #include #define MAX_SIZE 1000 char* str_json = "{"name":"張三","age":28,"hobby":["籃球","游泳","音樂"]}"; int main() { char* str_hobby[MAX_SIZE] = {0}; int i = 0; char* temp_str = NULL; char* p = strtok(str_json, "{:\"[],}"); while(p != NULL) { if(strcmp(p, "hobby") == 0) // 找到hobby字段 { p = strtok(NULL, "{:\"[],}"); while(p != NULL) { if(*p != '\0') { temp_str = (char*)malloc(strlen(p)+1); // 分配空間,存儲數據 memset(temp_str, 0, strlen(p)+1); strncpy(temp_str, p, strlen(p)); str_hobby[i++] = temp_str; // 將字符串存入str_hobby數組中 } p = strtok(NULL, "{:\"[],}"); } break; } p = strtok(NULL, "{:\"[],}"); } // 打印結果 for(int j = 0; j< i; ++j) { printf("%s\n", str_hobby[j]); } // 釋放空間 for(int j = 0; j< i; ++j) { free(str_hobby[j]); str_hobby[j] = NULL; } return 0; }
在上述代碼中,我們使用了strtok函數對JSON串進行分割,然后根據字段找到需要的內容,將它們存儲在str_hobby數組中,最后打印出來。需要注意的是,我們在存儲字符串的時候,需要動態分配空間,并在使用完畢后釋放空間,避免內存泄露。