在過去的幾年里,JSON已經成為了前后端交互中的一種重要的格式。在C語言中,對于處理JSON格式的數據,本文將向您介紹如何獲取JSON數組的數據。
首先,我們需要一個JSON解析器,這里我們使用C語言庫中的 cJSON。cJSON是一個輕量級的JSON解析器/生成器,可以在C語言中方便的使用,并且幾乎不需要其他第三方庫的支持。
下面是一個簡單的JSON格式:
{ "name":"小明", "age":20, "isStudent":true, "scores":[80, 90, 85, 98] }
如何在C語言中獲取scores數組中的數據呢?下面是一段示例代碼:
#include#include int main(int argc, char **argv) { char *json_str = "{\"name\":\"小明\",\"age\":20,\"isStudent\":true,\"scores\":[80, 90, 85, 98]}"; cJSON *json = cJSON_Parse(json_str); if(json == NULL) { printf("parse json error!\n"); return -1; } cJSON *scores = cJSON_GetObjectItem(json, "scores"); if(scores == NULL) { printf("get scores error!\n"); cJSON_Delete(json); return -1; } int scores_size = cJSON_GetArraySize(scores); for(int i = 0; i< scores_size; i++) { cJSON *score = cJSON_GetArrayItem(scores, i); if(score != NULL) { printf("score[%d]:%d\n", i, score->valueint); } } cJSON_Delete(json); return 0; }
代碼的第一行中我們定義了一個JSON字符串,只需要將字符串解析成cJSON對象,便可以獲取JSON數據中的相應元素。其中,cJSON_GetObjectItem函數用于獲取scores數組對應的cJSON對象,獲得了對象后就可以通過cJSON_GetArraySize函數獲取數組的大小,并通過cJSON_GetArrayItem在循環中依次獲取數組元素了。
總之,C語言中還有許多其他的JSON解析庫,但是cJSON解析庫小巧簡便,也很好理解,可以作為學習JSON解析的入門工具。
上一篇vue 監聽窗口高度
下一篇c如何解析json字符串