在使用C語言編程時,經(jīng)常需要從JSON數(shù)據(jù)中獲取數(shù)組。一些數(shù)據(jù)解析庫,如Jansson、cJSON、yajl等,可以幫助我們完成這個任務。
下面以Jansson庫為例,來演示如何獲取JSON中的數(shù)組。
//Json字符串 char *json_string = "{ \"arr\": [1, 2, 3, 4] }"; json_error_t error; //錯誤結構體 // 解析字符串 json_t *root = json_loads(json_string, 0, &error); if (!root) { printf("json error on line %d: %s\n", error.line, error.text); return -1; } // 獲取數(shù)組 json_t *array = json_object_get(root, "arr"); // 遍歷數(shù)組 size_t i; json_t *value; for (i = 0; i< json_array_size(array); i++) { value = json_array_get(array, i); printf("arr[%d]: %d\n", i, json_integer_value(value)); } // 釋放內存 json_decref(root);
上述代碼將輸出以下結果:
arr[0]: 1 arr[1]: 2 arr[2]: 3 arr[3]: 4
通過以上代碼可知,獲取JSON中的數(shù)組主要分為以下幾個步驟:
- 解析JSON字符串,得到json_t指針。
- 通過json_object_get函數(shù)獲取數(shù)組對應的json_t指針。
- 遍歷數(shù)組,獲取數(shù)組元素。
- 釋放內存。
這里只展示了一種解析JSON數(shù)組的方法,讀者可以嘗試使用不同的JSON解析庫來處理數(shù)組數(shù)據(jù)。