C語言作為一門流行的編程語言,在處理JSON數(shù)據(jù)時有著很強的表現(xiàn)力。JSON數(shù)組是一種用于描述一組值或者元素的數(shù)據(jù)結(jié)構(gòu),而C語言中可以使用cJSON庫來解析JSON數(shù)據(jù)。
#include <stdio.h> #include <stdlib.h> #include "cjson/cJSON.h" int main() { const char* json = "{\"array\": [1, 2, 3]}"; cJSON* root = cJSON_Parse(json); if (root != NULL) { cJSON* array = cJSON_GetObjectItemCaseSensitive(root, "array"); if (cJSON_IsArray(array)) { int size = cJSON_GetArraySize(array); for (int i = 0; i < size; i++) { cJSON* item = cJSON_GetArrayItem(array, i); if (cJSON_IsNumber(item)) { printf("%d\n", item->valueint); } } } } cJSON_Delete(root); return 0; }
以上代碼演示了如何在C語言解析JSON數(shù)據(jù)后提取JSON數(shù)組中的值。
首先,我們使用cJSON_Parse()函數(shù)解析JSON數(shù)據(jù)。如果JSON數(shù)據(jù)有效,則返回一個cJSON對象,否則返回NULL。然后,我們使用cJSON_GetObjectItemCaseSensitive()函數(shù)獲取名為“array”的cJSON對象。如果找到了該對象,那么我們使用cJSON_IsArray()函數(shù)檢查該對象是否是一個JSON數(shù)組。如果是一個數(shù)組,則獲取它的大小,并使用cJSON_GetArrayItem()函數(shù)獲取數(shù)組中的每個元素。最后,我們使用cJSON_IsNumber()函數(shù)檢查元素是否是一個數(shù)字,并輸出它的值。