在c語言中處理json數組,需要用到第三方庫,比如cjson。首先需要將json數組轉成cjson的格式后才能進行操作。
#include <stdio.h> #include <cjson/cJSON.h> int main() { //json字符串 char* json_str = "[{\"id\":1,\"name\":\"Alice\",\"age\":20},{\"id\":2,\"name\":\"Bob\",\"age\":25}]"; //將json字符串轉成cjson對象 cJSON* root = cJSON_Parse(json_str); //檢查解析是否成功 if (root == NULL) { printf("cJSON_Parse error:%s\n", cJSON_GetErrorPtr()); return 1; } //獲取json數組 cJSON* array = cJSON_GetArrayItem(root, 0); //遍歷json數組 for (int i = 0; i < cJSON_GetArraySize(array); i++) { //獲取json對象 cJSON* obj = cJSON_GetArrayItem(array, i); //獲取json對象的屬性 int id = cJSON_GetObjectItem(obj, "id")->valueint; char* name = cJSON_GetObjectItem(obj, "name")->valuestring; int age = cJSON_GetObjectItem(obj, "age")->valueint; //輸出結果 printf("id:%d, name:%s, age:%d\n", id, name, age); } //釋放cjson對象 cJSON_Delete(root); return 0; }
在上面的代碼中,首先將json字符串轉成cjson對象,然后獲取json數組,遍歷每個json對象,獲取屬性后輸出結果。最后釋放cjson對象。
上一篇c 處理json數據中